0

I like to know what exactly is the back-end programming? Does it include offline databases? Everyone who designs and creates databases and tables is a back-end programmer? What do they mean exactly by server side programming? By which languages they do this and may someone gives some examples about some of those programs that are written for server and we call them back-end programs? Maybe its good to ask for which kind of projects/programs/applications we need back-end programming?

Sorry if this is duplicated, broad or boring, but I couldn't find my answers any other places!

0

3 Answers 3

3

Back-end and front-end are emerging separations of concerns in development, typically these days "web development". In some shops you have two types of developers, often on separate teams. These different groups of developers often specialize (intentionally or not) and this specialization creates a pretty useful mental model,

  • Back-end developers are responsible for things not pertaining to the user-interface. This is usually half the work. Their development stops at some fairly arbitrary hand-off point.

    Traditionally back-end developers were the only kind of developers because the user-interface was massively simpler and the pool of people that had a complete understanding ("full stack" in modern parlance) was the norm. As the user-interface became more complex and a litany of vocational schools and camps emerged training people for a specific tract of programming there was a need to place those from this pigeonholed and often spoon-fed pool of the workforce. The work load was removed from back-end developers, and the front-end developer was born. Back-end developers today are likely to be skilled with the database, SQL, Perl, Python, C, C++, and will have a thorough understanding of Networking Administration, and System Administration (and may have themselves migrated from when those forms of Administration were more or less employable on their own merits).

  • Front-end developers are responsible for everything at the hand-off-point forward. Today, professional front-end developers are largely of two camps: Angular and React, previously they were oriented to jQuery, and Backbone like technologies. Today the front-end entails massive libraries, especially Angular, and they take a substantial investment in time to learn, and to stay up to date with. Typical front-end developers are skilled with Angular or React and have extensive knowledge of REST-clients, JavaScript, HTML, CSS, Reactive design, Translation and i18n, Fluid design (mobile vs desktop) and UX concepts.

Some languages straddle both camps pretty well and you'll find a lot of cross over, like Java/Dalvik on Android which creates pretty well rounded programmers, and also Node.JS which permits JavaScript front-end programmers to transition to and from the backend.

As far Database Administrators are concerned, you're likely a Back-End developer if you're here. There are databases (often hosted solutions) that cater to front-end developers which lack a firm understanding of how a database works. One such example is Google Firebase, but shy of being employed at Google you're likely not a Database Administrator in any useful sense for merely using the hosted Firebase service.

3
  • Nice answer - +1, but this caught my eye ` understanding of Networking Administration, and System Administration (and may have themselves migrated from when those forms of Administration were more or less employable on their own merits)`. Are you saying those jobs no longer exist?
    – Vérace
    Commented May 28, 2018 at 5:45
  • In absolute terms? No, you can certainly still find them -- no disputing that. In practical terms, it's not exactly a fledgling market anymore. Aside from the continued onslaught at the hands of The Cloud ("other people's computer") it was more or less on the way out. Novell has been out of business for years now, and now any idiot can chain together 3 24-Port gbit switches and $300 OpenLEDE box and take care of mid-size company. System Administration isn't much better -- it's now cPanel and IIS, any idiot can run a web/ftp/mail server (if they're not using Google Apps) Commented May 28, 2018 at 6:05
  • @Vérace Of course at scale all of this stuff falls away, but it's not like everyone is working for an S&P co., or the government. Commented May 28, 2018 at 6:09
1

Server side would typically have no UI.

Server side is the business rules, data layer, and database (if required). Server side will typically have authentication.

Client side is the UI and will call the server objects. Client will typically have some business rules and validation.

Server and client can talk using WCF (Windows Communication Foundation), REST, raw socket, and others.

Often the server program will operate as a Service.

You can also have server and client in the same program. The client just creates a server object and calls it directly. You might do this for the initial development and then later move it out.

A web site might host the server code also and just create the server object. The browser client would not access the server object directly.

This separation protects the data from direct access by the client.

0

What are you looking is named multi tier architecture.

(most applications uses a 3 tier approach)

Check this article: https://en.wikipedia.org/wiki/Multitier_architecture

1
  • Perhaps you could expand a little? Link only answers are discouraged here as they can be subject to link-rot.
    – Vérace
    Commented May 28, 2018 at 5:42

Not the answer you're looking for? Browse other questions tagged or ask your own question.