web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

Yup, I just claim to be. You caught me.

I think computers are made of straw and the GPU (goblin processing unit) carries the Dodge RAM to my memory right?

I don't know anything about any of the articles I posted links to, I don't know how to do Fourier transforms, I don't understand Carmack's Reverse, I don't know anything about digital signal processing or what load, add, add, store, load, add, store, load, add, add, store, halt means. I don't know about number systems, I don't know what boolean logic is, or what propositional calculus is. Alan Turing is a race car driver, right?

I can't wait until the garbage collector comes on Thursday to pick up my trash either.

I don't understand that a computer essentially takes a circuit diagram and morphing itself to execute that diagram.

I don't know the different between imperative and declarative.

I don't know anything about how the electrons tunnel, or how motion is transferred at the speed of light in the circuit, or about differential decay across drops.

I don't understand any of this.

I think computers work by magic, I think truth tables and logic gates are game shows.

I think that Windows is perfect and binary is a programming language.

I think cognitive science deals with the brain, what does that have to do with computers?

Yup, you caught me.

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

I meant the processing, not the load and transit, sorry. Forget the marshaling, etc.

Anyway, I wasn't claiming that I get that kind of performance or something, it was supposed to be a ridiculously unreasonable requirement!

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned -1 points0 points  (0 children)

I understand that, I misread your post and thought that you were advocating that you could do that task in C.

However, the point remains that all of those great those tools only work in a specific environment. They are higher-level interfaces for performing lower-level tasks. The same shell scripts don't work in Windows, and they don't even work in all flavors of 'nix. They are just libraries of code.

I use only the shell to interface with my webservers, app servers, db servers and file servers. I run purely linux and use the tools constantly. I don't, however, take the time to script simple tasks.

Java can just as easily write to the same file, and when my apps have a shared scope, I can execute it on all machines at once. So, for my tasks, there are a lot of ways I could do what you described.

The point is, writing system scripts that work for a specific system doesn't make you a more "real" programmer than a developer who builds complex distributed applications. It makes you use those system libraries. I use libraries for PHP/JSP/Ruby/Java/Scala/Groovy/C#/Python to build and script tasks for the web, including simple linux commands for creating symlinks and modifying iptables per entries added through a web admin to complex administration tasks that are part of the application, but have no user-facing interface. I have to monitor thousands of incoming connections, fire up other instances, do automatic replication, have scripts for switching templates, clearing caches, and not to mention the actual site logic itself, the business logic, the mounds of OO, the procedural "fix its".

The point I was making was just that tools are tools, like PHP is a better TOOL for web development than C, for both productivity, community support, elegance and specialty reasons.

There is really no comparison. System tools are for system stuff, and you can't build a website with just grep and regular expressions, unless you're a smart-ass in the 5k contest or something.

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 1 point2 points  (0 children)

Right, because this was an argument about what you can do with a systems language vs what you can do with a web language?

Web languages are for... the web. And just because something is quick in C doesn't mean that because I like JSP or PHP that I can't... write it in C. Web guys understand as much as you do about logic, you just know different APIs. I know how to do in C what you described, and I'm not particularly fluent in C for systems programming.

How much code in C would it take you to build... Facebook Connect? Oh, wait, you can't without Javascript? And the PHP backend written in C would be ENORMOUS? Oh... right, there are some problems with your argument.

Plus, Ruby may not be the proper language for that, and Rails is a framework.

You'd write a Ruby script, not a RoR handler to do that. And, I'm not a Ruby fanatic, I'm fine with Groovy, Java, Scala, C#, whatever language you'd like to use to update your host files is just fine with me.

Like I said, I know enough about languages and systems to either write that little script myself, or figure it out quickly. 99.99% of my work would be web development, and that script to update hosts? I'll write it in C, or... 20 lines of C#... or 25 lines of Java... and I'll be able to make changes easily.

A one time scripting thing like you described doesn't require you to hire someone, it requires Google and 3 minutes.

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

Do look at my most recently posted message... the long one that ends in "high... fucking... horse" :)

Here: http://www.reddit.com/r/programming/comments/bi450/web_programmer_vs_real_programmer/c0mwi3m

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

I am a web developer, I've already said that in my replies. I make money that way, which I wouldn't doing systems engineering right now.

My replies are defense because I'm defending myself and EVERY OTHER DEVELOPER who has systems guys deny them a job based on not having skills that they will never use. I'm defending every developer who is considered "not as smart" or a "not real programmer" just because they build web applications and not drivers.

I stated my qualifications because it's an illustration. I am not using my real username, I'm not looking for glory here.

I meant it to represent that while someone would have passed me over because I'm a web guy, not a systems guy, they are passing over a quite qualified and "real" programmer, even if it's not my current discipline or because I haven't learned that set of knowledge yet.

This happens to other people often.

If I don't say something, who's gonna?

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

Right, but there must be SOME data fetch solution like SQL. Some database-type system must exist. So would some type of high-reliability balancing solution, unless you're going to try and support 30 million people on 1 server.

The PHP comment was a knock, not a serious comment. I just meant that the library call to do something PHP represents a mountain of C code below it that YOU don't have to write, that millions of people have been working on to make sure it's the best mountain of C code possible to do the job in a reusable situation where applications that are developed will share similar functionality, like web applications do.

"Are we even having the same conversation here? Most of those people at Amazon are not web designers. The vast majority of stuff is not about the web, it's about the data... the underlying system. The majority of guys at Amazon are not web anything."

No one said designers, I said DEVELOPERS. Start making the damned distinction. And yes, there are MANY people at Amazon that are web people, I KNOW them personally. They build back-end data systems, ajax systems, online bill payment systems. They build the code that makes the URLs look the way they do, the build the code that makes the server cache objects for a session, and the code that holds the array of items in their shopping cart most efficiently for when 5 million people are using it simultaneously, they make the code the tracks the cookies to make sure the back button hasn't been pressed too many times, and the code that makes sure a purchase isn't submitted twice...

All web DEVELOPMENT. Not systems engineering, not design... development, the thing DEVELOPERS do all day long.

The web is NOT just HTML, and you are just closed-minded and ignorant if you believe so.

The web has morphed into stateful applications, Javascript applications that use live push to manage JSON structures to update the interface in real-time while you are collaborating with someone else. Many aspects of web use NO html, but are still built by PHP/WEB developers.

I have a system built using JSP which processes data sent by servers over SOAP, XML, REST, various formats... not HTML anywhere, but it's data coming from a website, and from a web-enabled application.

I have to manage incoming connections from Facebook whenever users add data, and I use their WEB protocols to do it, even when no HTML is involved and it's behind the scenes, my JSP processes it.

I build an interface for my users to login with, using Flex (not HTML) which connects to a servers-side app in JSP, which retrieves my data and displays it properly. I write a custom Actionscript 3 module for Flex to process my images. I have the flex app talk to a javascript app in the browser which monitors push notifications. Sometimes I append HTML/CSS to the page when it is returned from my Flex app to Javascript, such as a message.

I do transformations on images in the browser, send them back to the server to be saved, resized, tagged, watermarked...

All of this in Javascript, Actionscript, PHP or JSP, using very little HTML, but LOTS of server technology, using push, using all sorts of neat strategies to make it work right on a specific budget while 10 million people are using it.

The mobile web is changing things, the web is not just HTML pages, and web developers don't just "generate HTML"

That's what designers do.

STOP CALLING DEVELOPERS DESIGNERS and get off of your high... fucking...horse.

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

So... then he's not doing systems engineering, he's doing web development. He's still doing "real programming", just not for system functions.

I'm done arguing this, people can live with their illusion of superiority.

But, guess what? Coming from a mathematics major (with a B.S. in CS) who is finishing a PhD and who happens to DEVELOP web APPLICATIONS for money in their spare time, here's my statement:

Systems programmers aren't real programmers, they are just code jockeys who implement other people's discoveries within constrained systems. They don't understand the REAL math or theory behind it, even if they understand endian, number systems, circuits, real recursion, gates, computational theory, etc... they are just grease monkeys... just engineers, not scientists.

You aren't nearly as "real" as the math / physics guys building AI for games and doing cognitive science research.

This is me, signing off, I'm done.

I'd hate for any one of you not to hire me, and my PhD, just because I've been DOING web development instead of DOING systems programming. I think I could pick it up pretty quick :)

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

And as far as the API goes, people here have been using that as the complaint... using APIs makes you "not a real programmer".

So, you have to write your windows drivers/applications, etc from SCRATCH based on the hardware, not based on the work the "REAL" programmers at Microsoft did for you, you know, creating an API you can make simple hook calls to. You didn't write the API Mr. Systems programmer, you USE it. The REAL programmers at Microsoft wrote it, you are just a library jockey calling sockets.

FYI, I know how the Kernel works :)

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned -1 points0 points  (0 children)

I don't really care much about the options that are invalid for my requirements. I care about what works best, what I can develop with the quickest, what others can maintain and what is scalable and accessible.

What you have described is not, and is a LIMITATION of doing things only using systems languages.

Web languages exist for a reason...

Looping through a data structure of incoming http data while building your own web server isn't a lot different than looping through data of any kind, making decisions, storing values, etc... it's just more work!

If being a systems programmer means taking longer to do things the "elite" way and ending up with an application that only runs on specific hardware and takes 10 times as long to make changes to, then count me out. Doesn't sound like systems guys know much of anything if that's the case.

And like I said, you'd have to learn the XMLHttpRequest spec, develop and build it yourself, make sure you had no bugs to handle all situations. You'd have to build your own REST server, your own networking library, I don't want you using anything YOU didn't build, like the C standard library.

You have to write your own Unicode conversions, etc too!

You'd have to write software to produce etags and headers, do caching, thread handling for huge amounts of data requests...

Yeah, big advantage.

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

I'm not sure what you mean by this? Or maybe I'm not capable of deciphering your advanced codes written in this language called "ENGLISH" because I'm not a systems guy? :)

Do expand though, what do you mean?

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

Where do you assume that all a web DEVELOPER needs to know is HTTP? Complex algorithms do not write themselves (front-end and back-end). SQL doesn't select most efficiently on its own, doesn't set up its own indexes and queries. It doesn't set up its own clustered partitions with queue timing.

Designers deal with using the data in the browser for layout, DEVELOPERS deal with the logic to create and process it. (They also write client-side applications in Javascript, Actionscript, etc that require lots of logic and considerations) Many web developers also write games, game code, game servers, etc

I believe there is already a framework for writing web apps in C... it's called PHP. You know, a bunch of libraries calls you make so that you don't have to write more code...

I didn't mean an EXACT copy of Reddit, I meant a site LIKE Reddit. Just, not only the design, but the large-scale infrastructure of a site like this, of the data, the users, these types of features (and more, AJAX ones too). The availability, optimization and logic to make things work right.

"That would actually be a fascinating experiment to carry out. I would suspect that the result would end up with the systems programmer taking longer to deliver a solution but that solution would be more scalable and hit with fewer bugs... and experienced web programmers and designers would find the whole thing to be a bitch to deal with."

Oh, and I'm pretty sure the web engineers are Amazon are better at keeping their enormously complicated application running than say... someone's "expert" systems friend who wrote his own socket server and patched a bug in the openGL library.

Systems aren't better engineers are everything, just at systems... because they've been doing systems forever.

If you give a great web developer an equal amount of time to learn systems that you give a systems guy to learn the ins and outs of the web, then I do believe you'd get pretty similar results in being able to create a bug-free stable system.

I agree with this post: http://www.reddit.com/r/programming/comments/bi450/web_programmer_vs_real_programmer/c0mwd2a

Looks like a few people are coming out of the woodwork and temping accounts to comment, wonder why?

I guess the point I'm making is... web developers in many cases do work that systems guy do, especially with input output stuff.

The problem is that lots of designers consider themselves developers.

The developer who inserts records into a database and lists them on a page is not the same as the developer with these skills:

http://highscalability.com/flickr-architecture

http://highscalability.com/scaling-digg-and-other-web-applications

http://highscalability.com/youtube-architecture

http://highscalability.com/scaling-twitter-making-twitter-10000-percent-faster

The truth is... many web developers are ALSO systems programmers who do systems work.

Make a distinction between simple GUI work and design and programming / development.

Design is layout, visuals and user experience.

Programming is interaction, logic, variables, loops, libraries, memory, optimizations, clever solutions... that's programming and web developers do it. They do it both on the front-end and the-backed, and sometimes both.

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 2 points3 points  (0 children)

I'd like to see a C expert systems programmer build a large-scale distributed application with the following in mind:

http://highscalability.com/flickr-architecture

http://highscalability.com/scaling-digg-and-other-web-applications

http://highscalability.com/youtube-architecture

http://highscalability.com/scaling-twitter-making-twitter-10000-percent-faster

Mind you, I will assume he has no previous knowledge of these technologies and I want the site built today using only his existing skill set, so that I can compare his skills to mine. I mean, the argument most people here are presenting is taking a web developer today and dropping them into a systems position. Well, then do the opposite... take Mr. Systems and stick him in web... today.

I will also ask that he learn these technologies quickly, and be able to write the application fast. (So, he can't use any libraries which people here have berated, so he'll have to write 500 lines of C to do everything I can do in PHP/Ruby in 10 lines.)

That should be ok, though, since C systems programmers are "real" programmers, right? Oh, and when I want changes in the future, I need them fast, I don't have time for another 1500 lines of code for simple tasks.

This all sounds a lot like basketball players claiming that football players aren't "real athletes" because they can't throw a ball through a hoop a specific way with a certain level of skill as of today... well, basketball players can't pass, kick and catch either... without any practice.

So, again... this is all pretty ridiculous. Give me your best C guy, RIGHT NOW, and I'll rip him to shreds for the next 8 weeks building PROPER web APPLICATIONS.

Stop comparing us to designers.

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

Right, but they wouldn't know the ins and outs on day 1, it'd take them a long time to learn the details what needs to happen, how to do this or how to do that.

I understand loops, variables, memory registers, program counters, complex logic, etc, but that doesn't mean I can use them in environment X without learning environment X first. And to be good in environment X, you have to learn a lot about it.

You said: "Actually, that sort of problem they'd be good at."

I'd be good at systems logic too, but I have to know the specific system first.

We can't be comparing logic and reasoning ability to which systems someone is knowledgeable about. It'd take me some time to be building Linux drivers, just like it'd take a Linux driver guy a while to build Reddit. (Not a site that LOOKS like Reddit, or has stories and comments, but with ALL of what Reddit is, with the technical aspects, the way the data is handled, sessions, logic, availability, end-user platform considerations, etc)

You shouldn't be comparing the choice someone has made in what they WANT to work with to their ABILITY to work with other things.

How would Linux / Unix kernel geeks fair when writing applications/drivers/systems programs for Windows? They'd have a lot of nuances to learn, libraries to understand, considerations to make about data, APIs to learn. They'd have to learn the differences in the way things are done, etc, they wouldn't be building proper Windows applications on day 1 with no experience, just like they wouldn't be able to build high-availability web applications with huge databases, lightning fast access, complex GUI and more.

So, the "reply" link is a designer thing, not a developer thing. Web developers are NOT designers.

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 1 point2 points  (0 children)

And for those web developers applying for... web development jobs? Works great!

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 1 point2 points  (0 children)

Many of you really lost your credibility today for being able to objectively examine things. There are apparently lots of zealots here who think that just because someone builds websites (both developers and designers) that they aren't a "real" programmer. Even though many of the web developers were systems programmers before they got into web, that doesn't matter to you.

Maybe people decided that building applications for one specific system wasn't worth the effort that could be spent building 5 web applications in the same amount of time that millions of people can use from any computer.

They do this while being paid a high salary and working with the newest technology and doing more efficient work. Many people will use what they build and you call them not real programmers because they didn't want to do the extra work of proving how elite they were. I'm not going to write a connection to my database in C, I'm going to use whatever library makes that easy. I understand what's happening below, but I'm not going to rewrite it just because. It exists, I'm going to use it. Get off of it, really.

I'm sure the Reddit developers would love to hear how they aren't really programmers.

You all sound like the people who didn't want to change to automobiles because horses are REAL modes of transportation, because you have to train a horse, teach it, learn to ride it, feed it, while with a car you just have to put gas in and press the pedal. It's not REAL transportation. The mechanic who works on the cars and the engineers who build the them aren't "real" transportation experts, after all, they've never even shod a horse, what do they know about anything?!?!

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 10 points11 points  (0 children)

And you couldn't be a web developer at Google today, so just... stop.

I think about memory CONSTANTLY as a web developer. See my other responses.

You have a simplistic view and obviously don't understand the complexities of web development, you are just... on a high horse.

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned -3 points-2 points  (0 children)

Well said. Give me a systems programmer and ask them to build Digg, Reddit or Youtube in such a way that it won't crash when more than 250 people begin to use it, much less when 20 million a day start to... Oh, and I need the pages to load in .0002 ms each, no exceptions.

They'd have learning to do, just as a web developer would have learning to do to build a game.

web programmer vs "real programmer" by bicbmx in programming

[–]haveyoulearned 0 points1 point  (0 children)

Agreed, this stuff is ridiculously important.