The Technologies Changing What It Means To Be a Programmer 294
snydeq writes Modern programming bears little resemblance to the days of assembly code and toggles. Worse, or perhaps better, it markedly differs from what it meant to be a programmer just five years ago. While the technologies and tools underlying this transformation can make development work more powerful and efficient, they also make developers increasingly responsible for facets of computing beyond their traditional domain, thereby concentrating a wider range of roles and responsibilities into leaner, more overworked staff.
Re:Sensationalist BS? (Score:2, Informative)
If containers, continuous integration, Iaas, Paas, and other "deployment techniques" aren't dramatically impacting your workflow as a developer, then you're almost certainly wasting a lot of time.
Vagrant + Puppet/Chef = clean new test machine, configured & installed exactly the same way... every time.
Docker = "all my dependencies always travel with my application."
IaaS + PaaS = "if I need a bunch of test nodes to work with, or prototype something, I push a few buttons and wait 20 minutes, at which point my completely fresh test nodes are ready to use."
Continuous Integration = "I can tie all of this stuff together in an automated fashion, so that I don't waste a shitload of time... I commit my code, and elt the automated system run it through all the test cycles it needs."
If you're not taking advantage of a lot of these techniques & methods, then you really are missing out.
Re:COBOL was better than JavaScript. (Score:4, Informative)
Also keep in mind that Eich was given only 4 days to create the language. I agree that things should have been fixed long ago, while the changes would have been less disruptive.
My list (Score:5, Informative)
How about we make a list of the technologies that have actually impacted us in a real way over... hmm, let's say the past ten or fifteen years? I assume that everyone will have slightly different items, because we all work in different areas. I'm a game developer and use C++, so my perspective will reflect that. Listed in no particular order of importance:
1) C++ 11/14 - It's transformed the language in a fairly dramatic way, making it much safer and convenient to use, while leaving legacy code completely compatible. Modern C++ code feels a lot more like C# at times, just a whole lot uglier.
2) Mobile Platforms - Mobile platforms (smartphones and tablets) as a rising contender has caused a fundamental shift in the balance of power among platforms.
3) Online Gaming and Integration - MMOs and other games are taking advantage of the ubiquitous connectivity to the internet most of us now enjoy.
4) Distributed Version Control Systems - Modern source control systems such as Git and Mercurial (my favorite) are a boon not only to large distributed projects, but even for smaller developers. Traditional development house, for the most part, still use Perforce, though, which works much better for asset management.
5) Online distribution - The ability to quickly and easily download and update games from vendors like Steam, Gog, and Origin are opening up the market to indie and traditional developers alike, and will eventually kill physical distribution channels.
6) Online resources - Better search pioneered by Google teams up with incredibly knowledge-rich sites like StackExchange.com. The result is that damn near any question you have is likely to have already been asked and answered. If not, ask away, and you have a good chance of getting some real help.
7) GPU programming - More and more visual programming is being off-loaded to the GPU, and those have developed into full-blown programming languages of their own.
8) Parallel programming - With the advent of ubiquitous multi-core / multi-threaded processors in the past decade, game developers had to start getting serious about multi-threaded programming, making an already demanding job even tougher.
That's about all I can think of offhand that's really changed over the last fifteen years. Libraries, frameworks, and APIs are not some new phenomenon. They've been around since I started professionally programming, so it's ridiculous to include those. You might as well add "source code", "compilers/linkers", and "editors" to the list if you're going there.
What about in other professions?
Re:COBOL was better than JavaScript. (Score:5, Informative)
Someone who writes JavaScript every day and claims that "nothing at all" is broken is either lying or a real moron. There is plenty wrong and "broken" in JavaScript, primarily the retention of exceptionally poor design decisions that have carried all of the way through to today. Reliance on global variables, indeterminate behavior of "this", semicolon insertion, only having support for IEEE floating point numbers, lack of block-scoping, the syntax for the with block, two sets of comparison operators (one of which makes PHP seem coherent), over 50 reserved words of which maybe 20% are actually used and of those the language isn't smart enough to parse them only in their appropriate context.
There's a reason that nobody sane (or intelligent) programs in JavaScript without tools that tell you that your syntactically legit code is a disaster and that there are so many languages that transpile to JavaScript specifically to remove the stupidity.
Re:COBOL was better than JavaScript. (Score:4, Informative)
Even going with a simple Scheme implementation, like every undergraduate Comp Sci student will develop at one point or another, would have been better than JavaScript.
He wanted to do exactly that. Then someone at Netscape found out what Scheme was and put the kibosh on that plan. (Learn a little history, kid.)
In a way, we were really lucky. What we got was MUCH better. It's a rotten shame so few people here have actually taken the time to learn the language. It's really quite good. The "bad parts", interestingly enough, are the bits Eich was told to include to make it look more like Java (new, constructor functions, etc.)
It's perhaps the worst thing ever to have happened to the computing industry, the worst thing to have happened to the Web
There's a good chance that, without JavaScript, the web would have vanished. You probably don't remember all the hype surrounding the "x internet" back in the early 2000's, but the web was on it's way out. If not for JavaScript (and XHR) the web would likely have been replaced by some other set of technologies.