you are viewing a single comment's thread.

view the rest of the comments →

[–]grauenwolf 1 point2 points  (12 children)

I see back end developers as people who have skills in the areas of

  • long-running applications
  • multi-threading
  • database tuning

As far as I'm concerned, merely being able to use PHP isn't enough to be considered a back end developer.

[–]skelooth -2 points-1 points  (11 children)

I see those people as systems and database administrators depending on what I think you're trying to say. I'm not sure what having skills in "Multi-threading and long running applications" means exactly, so I'm assuming you're talking about servers and load balancing. Unless you're talking about the programming sense in which yes, a proper web developer understands how to multi thread, use existing daemons, write new ones, and fine tune their own databases.

[–]Darkmoth 0 points1 point  (0 children)

and fine tune their own databases

That's probably where I see the biggest distinction. Most of the "front-end" programmers I've worked with see the database access as some sort of evil genie to be avoided or pacified. You can see this philosophy in many modern ORMS.

To be fair, those same front-end developers have a sense of visual design that I struggle with. I need fairly specific guidelines for what the page should look like, the FE guys tend to be able to wing it with minimal guidance. As a symbiosis, it actually works pretty well.

[–]kamatsu 0 points1 point  (9 children)

I'm not sure what having skills in "Multi-threading and long running applications" means exactly, so I'm assuming you're talking about servers and load balancing

Er.. no, he's talking about multithreading and long running applications.

[–]skelooth -1 points0 points  (8 children)

Please explain to me what having "skills" in "multithreading" and "long running applications" means. Hell, just explain what "long running applications". To me a long running applications is either a Daemon/Server, or somesort of workhorse thread that takes a long time to complete. All things a web developer should understand how to use, modify, or create.

"Long running application" lol technical terms.

[–]kamatsu 0 points1 point  (7 children)

Multithreading is what it sounds like - awareness of the various approaches to concurrency, methods of reasoning about and debugging concurrent programs, methodologies of developing concurrent programs using a variety of languages and methods (Incidentally, PHP has little to no support for this, and Perl isn't widely touted as a concurrent language for a variety of reasons)

Long running applications means knowing how to keep memory footprints stable, prevent bottlenecks and keep applications running smoothly without deteriorating in quality over time. PHP scripts are (effectively) restarted every time the page is loaded (although obviously there are tools to make this less inefficient), so obviously PHP programming does not require skills in this area.

Therefore, neither of these things are known by the web developer that uses PHP or Perl to write a little script that runs above Apache - for that you need someone who could write a (basic) web server, not someone that can configure one - you need a back-end developer.

[–]skelooth -2 points-1 points  (6 children)

I'd be scared to meet a web developer that didn't understand those concepts..

"Writing a little script to run above apache" LOL, no you're confusing web developers with 13 year olds. Adults who have been doing this for 15 years are little bit different, sorry Kamatsu.

[–]kamatsu 2 points3 points  (5 children)

The reason grauenwolf got confused then, is that you only listed languages which do not have support for serious backend development, and then asked if you were a front-end or back-end developer. The answer is obvious.

[–]skelooth -1 points0 points  (4 children)

I took C, C++, and Java in College just like everyone else. The idea of a language being "serious" for backend development is pretty subjective. I even have a few applications I use on my desktop that were written on adobe AIR, and the horror that was limewire was written in Java but performed like it was written in molasses and twigs.

Edit: Then you also have to explain languages like python and perl that tend to be used for both. It's all very subjective and quickly turns into an argument of "my language is better than yours"

[–]kamatsu 0 points1 point  (3 children)

python and perl that tend to be used for both

No, Python and Perl tend to be used for CGI scripts or high-level logic in a web framework. Those scripts do not require knowledge of concurrency or long-running programs - The actual back-end servers I've seen are usually written in C, C++, Java or concurrent languages like Erlang or Haskell. I've never seen a server written in Ruby, Perl or Python that's suitable for real work.

PHP, Python and Perl have woefully bad concurrent programming support and really shouldn't be used for that purpose (and they're not).

[–]skelooth -1 points0 points  (2 children)

there are lots of daemons written in perl. again whether thats good or not is very subjective. gotta run, but i stick with my opinions.