Ask Slashdot: How Will You Be Programming In a Decade? (cheney.net)
An anonymous reader writes: Programmer Dave Cheney raised an interesting question today: How will you be programming in a decade? If you look back to a decade ago, you can see some huge shifts in the software industry. This includes the rise of smartphones, ubiquitous cloud infrastructure, and containers. We've also seen an explosion of special-purpose libraries and environments, many with an emphasis on networking and scaling. At the same time, we still have a ton of people writing Java and C and Python. Some programmers have jumped headfirst into new tools like Light Table, while others are still quite happy with Emacs. So, programmers of Slashdot, I ask you: How do you think your work (or play) will change in the next ten years?
With a gesture-based interface connected to my fishing rod.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Learning new languages every six months in a young man's game. As I get older, I will gravitate towards jobs where I can leverage 15+ years experience in a language to get better-paying positions.
In ten years, you will all be Girls. Girls will be an engineer. Engineer! Engineer! Engineer Girls Engineer! Engineer will be the Girls. YOU CODING ENGINEER DESIGNING GIRLS!!!
Still with a text editor. Maybe a GUI designer. Faster PC though!
It will all be done either in India or via automation.
Honestly, probably how the startups are programming right now.
The industry I work in tends to be lagged about 10 years. We're just now starting to realize there may be something to all this agile/kanban/scrum stuff we've been hearing about (yes, just as the new-agers are moving away from it to ATDD and similar).
Where I think the bleeding edge will be in 10 years:
Methodology wise I think (hope) things will keep going down the path of trimming down processes to the useful bits, improving communication, getting the end product closer to what the customer wanted and more reliable. This seems to be what every generation of "new methodologies" gets closer to, so reasonable to assume we'll just keep getting better at this.
Technology wise I think we'll continue moving towards gluing together larger components. Application frameworks will continue to suck less, we'll see a smaller but more powerful defacto toolset.
It'll all be moot though, because systemd will eventually swallow the sun, and then we'll all die.
I'll be programming the same except using Cherry MX periwinkle switches instead of the current blue ones I have now.
A mix of Prolog for high level problems, Fortran for calculations, Erlang for concurrency and Assembly for speed.
/. refugees on Usenet: news:comp.misc
Windows batch files, written in Notepad.
In ten years I intend to be programming in management speak, functional specifications and almost completely useless and barely intelligible pseudo code.
Probably be doing the same shit, but with new APIs.
Still using Java, still using Springframework, still using RDBMS, and still writing integration with MQs and web services.
And still making damn good money doing it.
emacs? how you dare! :x
i will be using vim, of course.
... computer programs you.
1. Computers will be used to figure out how to modify human DNA.
2. We may have a new Soviet Union.
Programming Won't Exist in 10 years.
In 10 years all the libraries and software that will ever need to be written will be written, and we will just use GUIs to connect inputs and outputs and link up Java-Scripts. Plus we have the cloud.
Pretty much a stone cold certainty that there will be roughly as many changes for the better as for the worse. And nobody will be able to agree which is which.
And likely training my lower-cost Vietnamese replacement.
I'll be using TECO for my editor...
Interpret that how you will.
We're already seeing this in higher level languages, the compilers are getting "smart" enough to translate the dumb things you ask it to do into real code.
Basically we're going to be programming against virtual machines/containers specifically adapted to handle the limited resource requirements of their tasks.
In addition learn to parallelize tasks with proper dependencies... Unless like me you're in the deep that's what you need to focus on.
All programming will be focussed on translating English to Chinese for our Asian overlords.
Poorly.
Browsing at +1 - no ACs, I ignore their posts. So refreshing!
I'll probably be in a home for the disabled. Right now I am considering just standing up and walking out, driving to the hospital.
https://www.youtube.com/watch?...
nothing to see here - move along
It seems to me that you need the languages with the right features to be able to implement good tool support. Consider the excellent IDEs that have been created for Java (Eclipse, IDEA, NetBeans) with extremely advanced refactoring capabilities, code navigation, and inline compilation with meaningful error messages. Such support requires the ability to do static analysis, which you can't do properly in some of the newly popular languages like JavaScript.
The cloud and containers are both buzzwords that haven't changed my programming one bit. Things that have changed in my surroundings (and I think have gained a lot more traction in a broad part of the programming community) are automated testing, continuous integration, continuous deployment, distributed version control systems.
Correct question is - How would you be programmed in a decade...
ELOI, ELOI, LAMA SABACHTHANI!?
All hail my epic neckbeard.
as you are laid off and an H1B visa holder takes your job.
Source files will be in machine readable format that conveys meaning, while individual programmers will have a choice of textual, graphical and hybrid representations to work on that meaning, So most people will just drag and drop an image into a source editor and start using it without worrying about how it is stored in the application bundle. But if another programmer on your project uses vi and wants to explicitly refer to R.drawable.pacman, they can.
The article is like, "Hey! Look! Android! Containers! New execution environments! IDEs!"
Meanwhile I learned to code in Quick Basic 4.5 in a procedural model. I then started doing functional programming in C, and that whole "modular" thing where we break out programs into chunks. Object oriented programming was in relative infancy, and I learned that when it was just wrapping up related stuff into objects.
We now have more complex design patterns. The Gang of Four book and Code Complete are a mess to read; Tony Bevis did a better job writing a clear, concise explanation in C# and Java.
It's not the tools and the languages; it's the method of problem solving. Project Management today is not the same as Project Management in 1980 (I'm CAPM certified). Engineering isn't the same. We've created new construction techniques, not just new materials and tools. Programming hasn't just advanced in terms of languages and system platforms; we've created new methods for writing enormous programs without doing a shitton of refactoring.
I haven't assimilated the new methodologies yet. I can't plan in a grand scale using those tools; my brain knows how to use the old ones and can project at low resolution, then fill in all the gaps at high resolution. I need to burn these new abstract factories and decorators and other bullshit into my contextual thinking before I can just throw down immensely-complex, well-architected computer programs. I know the whole deal with being from the old school, and i know how hard it is to change; I also know what worked for the last set of problems doesn't fit this new set. That's sort of foundational knowledge for me: the correct approach depends on the problem, not on what your favorite tools are.
Support my political activism on Patreon.
Writing application code directly, as we largely do now, is going to be seen as a niche, low level activity, like assembly coding is now.
Our job instead is going to be telling the robots what it is we want through testable specification.
.net 9.7.2 framework
On one hand there will be hordes of "coders" who will basically become cheap and expendable assembly-line sweatshop serfs who receive shitty McPaychecks for their "coding" McJob.
On the other hand, languages that make more mathematical sense (e.g. what Haskell, Prolog, etc are like today) but requires a bit more disposable intelligence will be used much more widely in real-world situations. New advances in compiler theory and technology will make it easier to write generic code and to generate optimized code for future's hardware architectures, such as high-dimensional RAM/cache and massively parallel systems etc. Metaprogramming, formal verification and computer-aided programming will be the power to drive down the wages of McCoders, while highly competitive, "master" programmers will be living in god-like aura of intelligence (and possibly wealth), but constantly fearing for losing their own edge to young competitors.
Much higher stake will be in computer security. NSA-like governmental agencies will be even more powerful, possibly breaking the foundation of many secure encryption methods as known today. Writing secure programs will be even more challenging, in theory and in practice.
Those who cannot advance themselves intelligently will suffer.
There will be task appropriate languages/tools such as C for lower level embedded/drives/OSs and evolving, more abstract, languages such as Java/Python/etc and folks will be continuing to wrongly apply high level tools to low level tasks. So, no I see no driver for change in the future. It would be cool to see an on chip hardware data stack added to CPUs (CPU side of the pipe) and supported in C with a Forth like statements. It will never happen, but one can still dream of the performance improvements.
Cue the "app the appers" guy...
"Appers who app the hyperapps will be apping the mutually recursive endoapping of apps."
CI/CD systems will automate the heck out of everything, and there will be less and less visibility into what's running where and how.
"Cloud Native" applications designed around microservices with well-defined interfaces and running in some PaaS "somewhere" will become the norm. I sadly foresee that developers themselves will be expected to become microservices, basically expected to do one thing only, and one thing well, and forbidden to look beyond their immediate horizon of the ever rolling Agile backlog. There will be less space for creativity at the individual level, and massive invisible machine learning software running in the back-end of the datacenters will automatically generate "facts" for the suits in charge, and possibly even stories on a backlog based on those facts. In 20 years, they'll generate their own code.
Instead, we must con women to do what they (quite rationally) don't want to do, so we can get our statistics right.
Remember this the next time government says it wants to "help" you.
You are behind, dude, Cherry MX Periwinkle Switches Reloaded++ is now out.
Seriously, who the hell knows what's 10 years down the road. The industry is driven as much by fads as logic, if not more.
I just hope the UI side simplifies so that one doesn't have to say diddle with the minutia of scroll-bar coordinates for everyday GUI idioms and bread-and-butter CRUD. I'd like to focus on domain logic rather than micromanage UI glitches all day.
UI's are f8cking mess unless you target a specific browser brand and version. We devolved from the desktop days. I pray the industry cleans up the UI mess created by the browser. Unfortunately the industry seems to be chasing eye candy fads instead instead of practical things, but I guess the money is in hype and flash.
In summary, get off my UI lawn!
Table-ized A.I.
And waiting for Perl 6 to be released "next year".
nuff said.
Yep, this. And those programmers will only be writing a handful of malformed TDD test cases and toss them over the fence to a foreign shop to search stackexchange for random bits of code that makes those test cases pass without much understanding of what the original problem was.
Ten years ago, I was coding gnarly C++. Today it's even more gnarly because the projects are bigger and the problems more subtle. I think my only way out of this trap will be to make a conscious decision to stop, but even if I opt out, others will be in there doing the same basic stuff to make everything keep running.
The Objective-C knowledge I began developing in 1988 will probably be less useful in ten years, though. If you had asked me in 1995 if I would be intentionally avoiding Objective-C work in 2015 because of burnout, I would have laughed at you.
I hope that my Perl knowledge will be useless in ten years, but I fear that it will be the most lucrative system I know.
In the 80's, software-engineering was an optimistic industry, structured programming had helped so much, object-oriented programming seemed likely to make things easy, logic programming was going to automate a lot of stuff, we were going to move upstream to direct solvers and provers. Sometime in the 00's, everyone gave up and decided that optimism was overrated, software-engineering would never earn the "engineering" part, so instead let's just try to mitigate the vicious cycles to keep them from going too far foul. I think in ten years, things are going to look basically the same as today, with minor evolutionary additions, and we might even argue about whether things have changed enough to be worth talking about.
While its 2015 and I'm still dealing with archaic stuff like SQL and sporting legacy apps. The future is clearly going to be leveraging API's for all sorts of online-based solutions and this will only accelerator as the IoT becomes more prevalent. Also making use of a lot more Machine Learning to solve more elaborate business problems, and not just rely and re-purpose old rules-based if-then-else approach to decision making.. You'll write an app by plugging in various API's with whatever language works, language choice will be less of an issue. Sure there will still be a few hardware coders and folks needing to weat the small stuff, but for most folks its about using the BLACK -BOX API's and its who ties them together the best that will do well..stop worrying about the minutiae of particular language idiosyncrasies, focus on solutions not limitations.. (Ahh management speak coming through)
I don't know what programming will be like, but I DO know that whatever programming I do, it will be done on my LINUS(TM) brand desktop computer! In 10 years the LINUS(TM) brand desktop computer will have taken over the world!
Also emacs!
vi is for loserz!!
Meh. Whatever. Lame attempt at humor I guess. The reality is that the next 10 years will bring at least as many new fad-based languages, and 5-7 new C++ standards (none of which will be fully implemented much less fully understood), maybe 3-4 new, competing attempts at Javascript compilers ala Typescript (because Javascript is "the assembly language of the web" /cough)...as we all go slouching along in humanity's seemingly never ending endeavor to re-re-re-invent Common Lisp.
If you'd told me 10 years ago that I'd mostly be programming in LabVIEW today, I would have laughed. It's "not a real language". It's proprietary. Manipulating graphics takes so much longer than typing. Etc.
I still don't like that it's proprietary.
I suspect given the trends of the past decade that there will be more pseudo-code looking scripts written in language du jour, than actual code. API calls, to API calls that invoke still other APIs, without any understanding of what is actually being executed or on what platform it is executing. There has been a lot of effort put into making 'coding' simpler and more distributed which has many faults. First and foremost the simpler it is to code, the dumber our coders become. Similarly the more distributed we get, the harder it is to diagnose problems.
It used to be that a good debugger was all you needed. Now you can barely even tell what is going on without a sniffer trace, and even that will leave you wanting for some piece of the puzzle. I'm not suggesting a return to the days of COBOL, but not all advances result in better code.
I will hopefully be retired early (and still alive). If not, probably still embedded C++.
That is the closest to a constant you will get.
(-1: Post disagrees with my already-settled worldview) is not a valid mod option.
single player healthcare or no more employer based system will likely be in the us in 10 years
Instead, we must con women to do what they (quite rationally) don't want to do, so we can get our statistics right.
Minor logical error there. Sit in on an HR strategy session and you'll find that women represent a higher insurance cost to an organization than men. They incur more expensive medical costs (pregnancy, for example) while men are perfectly willing to sit at their desks quietly and die of some progressively worsening condition.
Have gnu, will travel.
Whatever the language or application, the one constant for me has always been the editor. I'm sure that will remain the same.
Excuse me? You write as if Java is some ancient dinosaur like COBOL that is on its way out. I don't think so. Java is the backbone of enterprise systems, has a massive open source and proprietary ecosystem, top notch tool chains, a runtime that runs 100% the same on all platforms, etc. Plus the Java platform continues to evolve such as the release of Java SE 8 a while back, the upcoming Java 9, and the upcoming Java EE 8 platform.
>> TDD test cases and toss them over the fence ...makes those test cases pass without much understanding of what the original problem was
As designed. That's how TDD breaks up work...
My coding practices now are about the same as they were ten years ago. I learned an extra language or three, and I use git now instead of CVS, but otherwise things are pretty much the same today as they were a decade ago.
Why would you need anything more
>> a runtime that runs 100% the same on all platforms
(spits out milk through nose)
Actually there won't be any "programmers" to manage, they'll be dead. You know, the ones who actually understand that opcodes lie underneath.
Instead all that will be left are the post-hipster "software engineers" drinking whatever Starbucks has morphed into.
Yuck.
Captcha: appliers
Unfortunate name there...
Write something worthy of reading
10 years ago I was writing Java and C++ but the ratio is growing monotonically. In 10 years time I would expect to be doing only Java but maybe in a more expressive dialect. Still with a keyboard-like input device but not with a mouse. Some people will still be editing PHP in notepad.
My Scrum Lord says that I'll drive peak stakeholder value for a billion years if I but open my heart to the One True Methodology.
a. all the hype of new languages, frameworks, and platforms will be debunted as fast as the blitz/viral marketing efforts that we see today.
b. the "myster" of coding will be old-hat from a nomenclature stand point. Everyone will recognize (not necessarily understand) FIFO queue, certs, etc..., even understand what a buffer overflow means. It will not effect careers & salaries in s/w, but will call out overrated tasks.
c. As much as Silicon Valley wants coders to be rock stars (e.g. as in Silicon Valley), s/w will become like the 70's again--pretty normal activities of technical work. Silicon Valley will need to fine a new hype topic--but they're good at it....
d. And we won't have smartphones.
There's a wealth of new research going on in Programming Language Theory, with several breakthroughs in the last years bridging the gap between functional and imperative programming.
The other trend in declarative programming is reactive languages like React.js and Flux being applied to user interfaces. This allows for tools like React Native which can abstract away all the spaghetti code to handle events, providing a higher abstraction, including the "debug & rewind" and "live programming" capabilities seen in online "web embedded" environments like Github Gist or JSFiddle.
I expect that, as these techniques mature, they will settle down and allow for development techniques that allow for easy discoverability of APIs without having to learn a particular complex syntax, and better programming by connecting components without the drawbacks and limitations of classic Visual tools.
All these new techniques based in Category Theory are driving advances in mainstream languages - starting with libraries like Linq and jQuery but also Python, Javascript and even C++ adopting lambdas, advanced type systems with auto-inference of types, and libraries with constructs for declarative race-free parallelism such as promises and agent models.
The majority of those techniques are being tested first in experimental languages by researchers eating their own dog food, with Haskell often having its most pure form (see what I did there?). Anyone interested in enhancing the expressivity of PLs may lurk Lambda the ultimage, where guys much more clever than you and me hang around and can give pointers to all the relevant theoretical results.
Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
In ten years, I'll be doing it by voice control. I've already started doing this. Here's how it works.
Hello $DRONE. This is what I want. This is what I want it to do. This is how I want it to look. This is how I want it done. When could you have that done? No, I've already said that I want it done in this $GENERICLANG, I'm not interested in $COOLLANGoftheDAY. When can you have it done? Very well, I expect deliverables from you at $DRONETIME/4 and regular updates on progress until then. Have a blessed day.
Use my neural interface to write a program to a data crystal that can display on the holodeck. Then leave work in my flying car.
[Insert pithy quote here]
Well, there's your problem.
Targeting a browser as the presentation layer of a UI is never a good idea, unless it's a static webpage.
I expect that, in 10 years, I will be programming in a good strongly-typed language. A young coworker will drop by to tell me how EasyScript is the best language ever. They will tell me that it is as fast as my strongly-typed language, but dynamic, and thus really fun to write in. I'll start with "Well, 10 years ago there was this language called JavaScript that people thought was the best thing ever..." then I'll say "10 years before that, there was this language called BASIC..." then the bearded guy next to me will say "and before that, there was this language called..."
10 years later, that new programmer will have another younger programmer stop by and say "I heard about this language called SimpleScript that is be best language ever. It is just as fast as your strongly-typed language, but dynamic..."
If you are young and in good health.
Trying to blow smoke up somewhere...
Medical expenses are and SHOULD be higher for older people. They incur higher costs.
Just like auto insurance is higher for young / new drivers. They incur higher costs.
I will be programming in C using GNU/Emacs like I have since 1988.
As I continue to work in array-oriented languages like APL or J, as I have for years, it's interesting how very slowly the new languages are re-discovering things we've known for decades. As someone I know said, "Google invented map-reduce in 2004 and Ken Iverson cleverly re-invented it in 1964".
Eventually, the idea that novice errors are irrelevant to language design may slowly work its way into the mainstream, along with any number of other unrecognized language desiderata that will seem obvious in retrospect, but I'm not holding my breath.
Hell, I am already not programming. Anyone who still programs is basically an idiot whiling away their valuable time while others make huge sums of money on their backs. If you are not in the startup game then you are a peon. No offense, but very few people can be a linus torvalds who can program for fun and make an ok living at it. I probably make a couple of orders of magnitude more money than him and my coding skills aren't even in the same ballpark, but I can write a kickass business case and I have a stable of smart (but obviously not too smart) offshore coders who can build a demo that works good enough. On top of that I have the VC contacts to make those things very very valuable.
>> a runtime that runs 100% the same on all platforms
(spits out milk through nose)
It's easy enough to write java programs that work on *nix and not on windows. Create two class files that are case-significant, such as MyClassFile (for the class itself) and MYCLASSFILE (for final variables) in the same directory. Copying these files to windows fails, as one overwrites the other.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
I'll probably add a couple of VIM macros and tweak my colour scheme. Yeah, that's about it. On the Internet.
I worked at a place used a vendors software that also had a server based version. They wanted us to switch but the owner said "Our current servers crash often, but our iSeries has been up since 1993 and has not gone down except when the power was cut and we found out our UPS batteries were dead." At the time, that was 13 years of steady processing.
I have been writing "enterprise software" (boring, lucrative software used by big business) for 15 years. Little has changed but the vocabulary, and even then it is synonym based changes ("Hosted" vs "Cloud", "GUI" vs "Single page application", etc). Sure I use new frameworks and describe my work in "new paradigms" but it is all just the same.
No matter what you do, or how you describe it, what tools you use, or even how you plan it, at a certain point you just have to do the thing.. actually write the code that makes the things happen that you want to happen.
No amount of framework overhaul, or "methodology shifts" will change the fact that there is a certain amount of stuff that you just have to do. The fact that I am willing to just do the thing, is what makes me a well-paid developer, and that's not going to change in 10 years.
We devolved from the desktop days.
Oh yes. One of the worst things that browsers did was virtually destroy the ability to use shortcut keys to do useful work instead of having to grab mouse and irritate carpal tunnels. All the shortcut keys now either do nothing or control the browser, not the app in the browser.
Plus far too many webpage authors don't leverage what few amenities we could have. For example, how many form-based pages have you visited where there's a preselected input where you can start typing instantly instead of grab-mouse-and-click before you start typing?
And don't even get me started on the drag-resized panes where the "drag grab" area is so small that you have to have machine-like motor skills to be able to mouse over it, click down, and drag without losing the whole operation.
But when it comes to gratuitous and annoying auto-playing audio-visuals, we're great!
But honestly, I have no clue. I'm still trying to catch up on all the programming paradigms that were the new hotness 3 or 4 years ago.
"You'll get nothing, and you'll like it!"
... like receiving a Replicant Retirement (tm).
I'll be retired, happy in the knowledge that I don't have to put up with the latest fad, be it in tools or methodology, with useless managers who insist in giving implementation opinions, when they do not know what they are talking about, and with colleagues with delusions of grandeur. At that point I'll give them a collective finger and will go back to coding for fun.
My timeline points to a different industry. Starting 20 years ago my progression goes: assembly for microcontrollers, C/VHDL for embedded systems, application level code in C++/VB. Now I manage whipper snappers, don't use a computing device outside of work, and have no interest in learning a new ecosystem just to tinker with an arduino.
I think I might become a trucker.
Probably the same way I do now.
Spend the first quarter of the day in meeting either day dreaming or staring off in to space. Spend the second quarter of the day responding to email, talking to customers on the phone, or talking to coworkers about interfacing our code. Spend the third quarter of the day doing some vim. Spend the fourth quarter of the day browsing the internet and waiting to go home.
Really, the actual typing away part of my job is pretty small. I probably spend at least as much time whiteboarding, talking to coworkes, and talking to customers as coding.
Further I work in embedded systems, I don't see the C language going anywhere soon. I don't expect the Linux kernel to be rewritten in Haskell anytime soon.
Languages wise
1. Hopefully the death of Java and similar GC knock-off languages like C#. World would be a really nice place without them.
2. Expect demise/marginalising of dynamic languages like Ruby, Python, etc (Python may survive for a bit, as some of the NLP libraries are written in it).
3. Expect JavaScript to be the de-facto language. In fact, it has become on the web. But yet to see it getting closer to OS and general hardware.
4. C/C++ will remain there as long as there are hardware and peripherals. Fortran because of research and stuff.
5. Maybe the second coming of Functional Languages. I expected languages like F# to take off rapidly, but still haven't seen any momentum. Likely, they will have its day when more and more cores are squeezed into the CPU.
Work wise
1. Nothing will change... still there will be incompetent managers, unrealistic timelines and unworkable workflows (agile, scrum, waterfall)
I sincerely hope it is not *still* with a mouse and keyboard. For me it is the least sucky way to interact with my pc, I wish something existed that would allow me to be more productive, I spend too much time moving the mouse around and typing.
You must gather your party before venturing forth.
It was assembler first. Then FORTRAN and BASIC and assembler. Then assembler and C. Then C and Perl. Then C and Python.
It's been C and Python ever since.
The shift from assembler was forced on me because the underlying platforms began to diverge; C took care of that, while remaining low level enough not to suffer the slings and arrows of clunk, lethargy, and various types of safety nets of a hoop-jumping nature.
Perl put a moderate amount of readily accessible speed and a great deal of power on the table. That was a huge step forward and renewed my interest in interpreted languages.
Python took that speed and power and added after-the-fact comprehensibility, a much better syntax, and a brace-free indented coding style that I found very attractive and readable, which in turn enhanced the power I was able to effectively leverage considerably.
Since about 2002, when I first began seriously developing in Python 2, I have been watching for a similar gain in comprehensibility, convenience and so on as was brought to me by Python, over Perl. Nothing I've seen thus far has come even close.
As for c, it's been flat-out unbeatable at the low-level for me in my post-assembler phase. I can't imagine something that would be both as close to the metal, and yet as amenable to high level concept implementation. I'd love to see something like that, but so far, the closest attempt, C++, has not come all that close for me. Objects with built-in methods are very easily (and much more efficiently) done in c. Classes themselves are nice-ish, but certainly they are not required. Organization of functionality is what they really do for most people, but I am already pretty organized, so C++ classes don't offer me much there (in fact, sometimes C++ classes get in my way.) Most of the rest of C++ is of little interest to me.
I'm always curious. C++, Objective C, C#, Go, Swift, Java... these kind of things attract my attention like a bee to pollen. But so far... Python 2 and C remain -- by far -- the most attractive and certainly the only ones in daily use.
I understand the urge to make a new language. I've felt it and succumbed to it myself. Not once, but several times. No general purpose languages, but specialized things like macro languages and KB languages and ray tracing languages and PCB layout languages. I really, truly appreciate that so many people have actually gone ahead and created general purpose languages and made them widely and freely available. Lots of people have different tastes and interests as compared to mine, and all of those languages being out there keeps everyone thinking and the underlying tech churning in such a way as to produce lots and lots of useful things.
Personally speaking, though, it's been about 13 years since anything in this area caught my interest to the point where I actually wanted to use it in production. I would like that to happen. But honestly, barring something that writes good code for me (not in the cards quite yet), I have a lot of trouble with the idea that with all these people thinking about computer language concepts over those years, that there are many (or any!) concepts left that would result in such an advance.
C (in my case) has an advantage in that for the various concepts I've really liked in other languages, I've built those facilities in C so I have ultra fast and lean instances of those particular functionalities. List handling; dictionaries; threading; regular expression handling; PostgreSQL and SQLite interfaces; memory management; input sanitization; etc. At this point, if I like a language concept, I'm more likely to implement it so I can have it available in C than I am to adopt the language that carries it.
Python... I really, really like Python 2. The only thing I don't like about it is the inability to extend a built-in class, for instance string handling. Sub-classing doesn't help when every instance of a subclassed-string utilizes the built-in class, because inevitably, the bui
I've fallen off your lawn, and I can't get up.
Ten years?
"It would be nice to have that kind of job security."
China should have undercut India by then. It will be cheaper to hire ten Chinese rather than do it myself. Now if I can only find a non-tech job by then....
Dude, I've been waiting on the (w)hole "intranet for your apps," crap to phase out since 1999. Holy crap do people like beating their heads against the wall.
After nearly 20 years doing this, I believe that what software developers actually do all day long is primarily ontology, and secondarily engineering. Conceptually fitting the real world into a little box filled with transistors is hard. You can't automate thinking (at least not yet). The computer world is a limited representation of the real world, and that translation, deciding which things to take and which things to leave, and what shape they take in the virtual, is something that a computer cannot do, and sure won't be able to in 10 years time, possible even in a 100 years time. Until then, programmers will be doing the same thing they do today, just in a slightly faster format with slightly updated tools and slightly slicker interfaces: crafting a virtual and limited representation of the real that allows modeling and the generation of knowledge and value from information from data.
Everyone is living in a personal delusion, just some are more delusional than others.
We devolved from the desktop days.
Speak for yourself, I'm still in the year of the linux desktop, and I'm still using a 90s-style desktop paradigm.
And in the browser if you use scriptblock, then sites without a traditional interface won't even look usable; you'll be spared entirely. The worst crap just obviously didn't load right, and you look for a site with legit content.
You don't have to devolve, just increase your lawn security.
Probably about the same as we're programming now. I got NPEs in the 1990s, NPEs in the 2000s, and still get NPEs today. The 2020s look like another decade of NPEs.
Most Java devs use an IDE. When creating a new class, the IDE names the file with the same case as the class name. This has never caused a cross platform issue for me. I've developed Java on Windows, Mac, Linux and Solaris.
Cobol
Nope, browsers did none of that. All the apps I use are still working just fine. :) I can't think of a single thing that I've migrated to the web. But I think procmail is a nice mail tool. haha
But the alternative sucks even more. If a web page wants to allow keyboard shortcuts, then it has to not conflict with the browser's shortcuts. I've been annoyed far too many days back in the flash days where I hit Ctrl-T or Ctrl-W but nope, the flash plugin grabbed it. One thing Windows does well hotkey-wise is it put all the OS shortcuts on Win+____ and nothing conflicts with them. Browsers, on the other hand, both use Ctrl+___ and Alt+___ for their hotkeys, so anything that wants to use those within the browser has to be very conservative with what it uses, or at least let the user remap them.
I currently do most of my programming in Fortran using Vim — and don't see any reason that this has to change during the next decade.
Note that I'm not one of the veterans that started with Fortran 77 a few decades ago; my first programming languages were Python, Matlab, and C++. But at some point, I was forced to learn the basics of Fortran in order to make a C++ wrapper for a library that I needed, and was so impressed with the modern versions of the language that I now do almost all my programming in it. For numerical work, you basically get the benefits of C++ (static typing, object orientation, high speed) and Matlab (matrices, complex numbers, array slicing, 'elemental' functions), combined with a large body of available legacy code from the last few decades that can be leveraged in your applications.
I expect that in ten years, if I'm still doing mainly numerical programming, I'll just be programming in a newer revision of Fortran using a newer version of Vim.
Some environments all they require is a console editor. Others take advantage of very very large tool stack (press F12 for live demo). 10 years from now vi will be alive and well and we are going to use it to program the programs that will police the programs that police the police programs.
- these are not the droids you are looking for -
only dumb twats with no experience in computer science use that shit
In python 3 which I guess will be starting to be widely adopted. Or was that almost 10 years ago? hehe!
... will have come back into vogue again.
I think over the next 10 years several things will be commonplace in programming. One will be a renewed emphasis on KISS (Keep It Simple Stupid) in software design, and the other will be more emphasis on programing for security.
Which ultimately brings programming almost full circle to less abstraction and more agility. In that environment I expect I will continue to program the way I've been programming since 1981 - with an added emphasis on secure programming and understanding what your tools are producing in the runtime environment.
Lodragan Draoidh
The more you explain it, the more I don't understand it. - Mark Twain
Most Java devs use an IDE. When creating a new class, the IDE names the file with the same case as the class name. This has never caused a cross platform issue for me. I've developed Java on Windows, Mac, Linux and Solaris.
You say most do. [citation required]. I don't, but that is competely irrelevant to the point I was making - that file systems that are not case sensitive (such as under windows) can not run all java programs that can be created on case-sensitive platforms. Handy if you want to restrict your software to non-windows systems, or if, as pointed out, you want to use different file names that only differ in case for things that you would normally use header files for in c/c++. Eg: foo.java and FOO.java instead of foo.c and foo.h. This wouldn't be an issue if windows was case-sensitive instead of just case-preserving.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
I'd be banned from programming in the United States as a white straight male.
A lot of the "revolutionary" changes are just evolutionary.
I'm only a hobby programmer, but the main change I've seen is the use of frameworks. But then again, that is basically just a nice bundle of libraries and templates. Composer (for PHP) is cute, but PECL existed a long time ago.
By my guess, this will continue, so in 10 years I will programm in something like the Wolfram Language - basically, everything but what is specific to your domain or app will be available as a library call.
Assorted stuff I do sometimes: Lemuria.org
We will be rewriting the wheel again this time virtual code within the virtual machines which the AIs inhabit and do their work from. That is until we get the new code ninja generation programmer AIs up-to-speed with how we write effective spaghetti code.
"Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
I'll be programming from inside a bunker deep in the Earth.
I mean seriously, there is nothing paradigm shifting on the horizon. Yes people may now use graphical tools to write GUI applications, but they did so since Visual Basic and Delphi, both of which were originally released in the first half of the 1990s.
There will always be specialized systems for special applications, but none of those are suitable for general consumption.
I am 37 and will be retiring in 15 years. So .. 1.5 decades. I've been programming since 1990, so ... 25 years. I have absolutely no plans on programming with-in the next month as I am switching to Systems or DB administration. I'm literally bored and sick of programming. The pay just isn't up there any more, and I plan to have a somewhat decent retirement.
One of the worst things that browsers did was virtually destroy the ability to use shortcut keys
You can put keyboard shortcuts into your web pages with the HTML attribute called accesskey. Like if you have a link for the Next page, you could write it like this:
<a href="pages/2" accesskey=N><u>N</u>ext</a>
Pressing Alt N would click it.
Unix/Linux and ANSI C using the vi editor, just like now. It's funny that I will retire on this day, in exactly 8 years!
Ah. And the alternative is what? 3270 terminals? Windows? Qt?
I can. I do. But thanks to the greediness of the browser, the choices are limited.
Some people think agile frameworks are the best and they need to couple javascript with .net and real java to generate ASP templates or other funky stuff. Other people just do real programming work, just like ten years ago. And they will do so in ten years from now. When node.js is forgotten for a long time, C will still be used with vi. Some stuff does not die. And this is not the hipster frameworks.
Seriously, in 10 years from now...
Java will be the what COBOL currently is. Swift will have replaced Objective-C. And a gazillion languages, be they dynamic, static, C-style or whatever, will be competing for the spot Java once inhabited. And even more languages will compete to be the current hip thing.
But C always will be, because a "system language" will always be needed, and C has proven to be the best so far.
So, answer is.. C
I truly hope I am no longer programming at all.
Retired from software... maybe. Sort of.
I will program in C, using vi.
My father used to code Fortran on punch cards, I wrote my MSc thesis in F90 and now I have some F2003 code in background. I would like to see the world outside sometimes, but I guess that in 10 years I'll be doing still Fortran on a shell. I am doomed, and so are my children and the children of my children....
Yep, I finally bit the bullet and migrated my config. from Xemacs to Emacs.
Gimme my 1980's commodore pet that booted in about 10 seconds. Having 1000x the CPU power, 1000x the memory has just made everything slower because nobody write code anymore, they just leverage libraries. Or at least it seems that way to me.
I will be programming in a system that takes my input for what the app should do, and stores the info in a database. With another database for the tables and such. When I do a make, it will read the databases and generate the code files, then run compiles and the link to make the run-able file(s).
But it will allow me to make changes in the code, that are stored in the database and picked up when I do the next make.
It will also allow working at different levels down to assembler, if necessary. And link in other languages. And use different database types, more than one in the same app.
With, of course, convenient screens to enter stuff including windows and forms. Which is also picked up automatically for the next make.
And by the way, it will allow writing scripts to make new code generator operations to generate new kinds of code. Or even text.
P.S. It's called Clarion, sold by SoftVelocity, look it up. But it's not cheap... 8-)