It might just be because it's easier to look back and see everything that has been accomplished but I look at programming and software development these days and it all seems so static and unchanging. I guess I can see quantum computing being the next leap in a lot of computing but even that focuses more on the "hardware" side of things and nothing I would ever be involved in.
I have studied many programming languages and at the end of the day it's just the same old things packaged differently (yes I know I'm generalizing here, but I think the point still stands). I know there are always new game engines and new libraries etc...but it's just not different or exciting enough for me.
Anyone want to share some programming ideas that will blow my mind or just your opinion on how things are progressing? I'm hoping I am just stuck in a box and can't see the big picture - hopefully this isn't just taken as me ranting.
One thing that will be coming very soon, will be much more advanced, high level parallel programming libraries and tools that can easily target different types of hardware, or automatically offload things to whatever devices are available and ideal.
OpenMP is one the main technologies falling under this category now. In the very near future, you will be able to use OpenMP for high level GPGPU stuff.
Other companies and dev teams are working hard on this right now as well. With new advancements in compiler technology, this is getting to be an easier task.
Additionally, in 2016, GPUs will, for the first time, be able to directly share memory address space with the CPU. That and huge increases in memory and bandwidth will revolutionize HPC programming.
Another trend in HPC computing is more use of scripting languages that call C or C++ libraries to do the heavy computations.
So in the future, you can probably expect that basic parallelism using both CPU and GPU, will be simple and easy, and high level languages such as python, will be used more extensively, even for performance critical applications.
///////////////
We can also expect to see more and more programming tasks being automated.
Eventually, we might see AI playing a large role in programming. I imagine that programmers will use AI bots as assistants, and they will be able to carry out fairly complex tasks, even those that involve making subjective decisions. In the long run ( maybe very long?), AI will probably be able to replace most programmers, or even all. Then, people would just be hired to tell the AI what to do and make decisions every now and then, when the AI asks their opinions.
The AI side of things has always been pretty exciting. I'm not sure we will get super intelligent AI in the next 100 years but I suppose it will happen eventually. Having AI being able to program everything by itself seems like a dangerous road to go down though.
I have never messed with parallelism using OpenMP etc. It might be fun but I don't really have anything that would need that kind of speed. GPU clusters do seem to be getting much more powerful though, just need the software to catch up for ease of use.
As for a world where most things use python for high performance tasks, I would be surprised?
If you guys could have 1 major advancement in software, what would you want it to be?
If you guys could have 1 major advancement in software, what would you want it to be?
Universal documentation standards. Not kidding.
* Add in unified code conventions and technical English proficiency tests too, if possible.
** I just recently took on a job utilizing the Magento E-commerce framework and oh my God you can tell what parts of it were outsourced to non-native English speakers.
I have only worked twice as a software-developer in my holidays (still going to school)
but I would like to have universal coding-convention standards.
In school when my teacher writes code we have his conventions.
From the 2 companies I've worked before one had coding-conventions that I didn't like because they were to detailed and because of this the names of the objects were pretty long. The other company didn't even have coding conventions.
@Luke Leber I don't know what you mean by documentation standards.
Do you mean comments in the code like these and a few more ...
- above a function: parameters, exceptions, return value, deprecated?
- above a class: usage of the class and the above for the methods, deprecated?
- at the beginning of a source file (from whom, when, usage, deprecated?)
... or am I completely mistaken?
Code documentation is only the tip of the iceberg. Quality documentation takes it a step higher with best practice examples that show how to use a tool effectively.
More or less, the opposite of this: http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/module_config.xml
< 40% even attempted. Nowhere near enough information to configure anything more than a trivial module. Not updated in years. If I were an fascist regime documentation inspector, that product would be shut down until things were brought back up to snuff.
For an example of good documentation, refer to Java.
I would like to have universal coding-convention standards
That sounds way too authoritarian for me.
But if we must all be forced to use the same conventions, we should all use my conventions!
I don't say that everyone has to follow that standard, I just think, like many other ISO norms, that there could be one for coding conventions as well.
The Idea is, like Luke Leber said, that code-sharing would be much more effective and reasonable and as a result public libraries or other shared code would be easier to maintain and extend without problems.
Furthermore I think outsourcing would be easier for companies.
Big companies don't have any problems with the lack of personal but for smaller companies this could be quite helpful.
That being said, I'm still a young guy who has hardly any work experience.