4 ms·
The problem is that the level of abstraction in modern languages means that the bar to becoming a programmer today is a lot lower than it was say in the 70s. C
by 10dpd 14y ago
The problem is that the level of abstraction in modern languages means that the bar to becoming a programmer today is a lot lower than it was say in the 70s.
Can you imagine explaining to a programmer in the 70s that they'd be able to determine someones precise location, place that location on an interactive map, and share it with all their friends, all from a tiny device that they keep in their pocket thats programmed using a simple, high-level API?
As a result, yes society does expect a lot from programmers, and rightly so.
- deleted 14y ago[deleted]
- davewiner 14y agoThe languages haven't changed much, but the price of computers has gone down. In the 80s there were much simpler development environments than we have now. Turbo Pascal and Think C were the two I used. It would be great to combine that level of ease of use and the browser or server-side programming environment. But no one has gotten there yet. As far as envisioning today's world of computing in the 70s, I was a programmer in the 70s and we envisioned this and a lot more. Read Ted Nelson's book Dream Machines for an idea.
- Vivtek 14y agoYeah, any reader of Omni was right on board - I know I was. My mom worked at the post office (rural carrier) and I blew her mind telling her that email would largely supplant postal mail. She just reminded me of that last year, actually. We all knew it was coming. Also - yeah. I kind of miss Turbo Pascal. But I'd never give up CPAN for it. Ha.
- Swizec 14y agoSurely you're joking. In the 70's everyone thought computers understanding human speech and talking back in a natural language was just around the corner. We still haven't gotten there. Similar for general AI.
- dakimov 14y agoNot true. The amount of information a modern programmer must keep in mind, be expert at, have hands on experience, or at least be aware of, is ridiculous. Platforms, languages, frameworks, libraries, areas - software architecture, algorithms, data structures, mathematics of any kind, graph theory, programming paradigms, system level programming, hardware level optimizations, OS architecture, networking, web technologies, client, server, Java, C#, JavaScript, HTML, CSS, XML, XSLT, C/C++, Python, Ruby, AI, speech synthesis/recognition, computer vision, computer graphics, sound processing, GPU computations, asynchronous, lock-free programming, dependency injection, databases, ORM, SQL, no-SQL, UI patterns, MVC, MVVP, compiler/interpreter design, text parsing, regular expressions, .Net, WinAPI, Unix, POSIX, mobile, iOS, Android, enormous amount of libraries often with huge APIs for each language and platform, etc., etc. - just a randomly picked fraction. Of course, for most programmers it is only feasible to specialize, and even then the amount of data is enormous, e.g. you can study all the nuances of C++ or Java for years, and still not be an expert, and Java has plenty of libraries with a huge API overall, but practically you are required to have experience and deep knowledge of each commonly used one if you want to be hired as a Senior Developer, and that is just an example. It is a general rule that you are required to have deep knowledge of the area and technology you future employer is working with, despite it is one of an insane amount, and most of thar knowledge you will never use again.