What's new after 20 years?
-
You are welcome. Indeed old C is still well alive, even under several reincarnations. Much of the C syntax and concepts have been reused in C++, Objective-C, Java, C# and many others... The Pascal language also had much influence on ADA and Pascal followers like Modula and Oberon (still in use, on a confidential scale, unfortunately). I don'k know of an European index, but I don't imagine the outcome would be much different.
Looking into the Tiobe index a bit more, I saw that it encompasses everything that has been written/coded (how they do that I don't know) but that should mean Europe is included... Thanks again for your input!!
-
C++ is still the bright star but the sky is full of stars. Programming is expensive, so you can do java stuff if you don't want to pay for well educated programmers. You can make a compromise with c#, which is better than java and quite innovative compared to other languages. But C++ is catching up, the current version contains a lot of interesting stuff, including the all good stuff C Sharp never had. Interpreting languages are quite common. Python or Ruby. PHP is used for a lot of small and/or buggy projects, because it's as easy to have success with one line of code as it is to get a two bug with two lines of code. There is some attention at functional programming like Haskell or Scala. Forget about anything you heard about basic, noone want's basic anymore. I would say, C++ is still top of the range, but C#/Java are more common for business stuff, like handling data bases stuff etc. The syntax of Java/C# is cleaner, at least at the windows environment, where C++ sometimes looks quite ugly. For portable software I do not see any real advantages of these languages. If you like to update your skills, teach yourself in C++11. If you're good with C++, everything else is just triviality - the rest are just programming tools with a specialization in the one or other matter. ;-) I am a c++ developer (officially I am C#-Developer, but I didn't write a c# line since two years or so), I was a java developer before. Currently I teach myself Scala just to know it and to keep track of this topic. For private projects I use C++ and a self developed programming language which currently just generates c++ codes.
I've understood that I have an advantage to already know C and C++. I just need to dust it off and oil up the machinery again... Appreciate your input!!
-
After 20 yrs, some one is going to write a s/w that will automatically write softwares for all devices. All programmers die :p
Well then I'll call myself an accountant who programs... ;P
-
My Computer Science degree is from 1988. There is really not much new. If you can read & write c and Pascal you are way ahead of the current crowd. The trend has drifted to bloated code and disregard for machine performance. A library or API call is preferred to self contained code. Getting a "tool chain" in place the first time is more difficult than actually writing code. A lot of what is called programming is actually scripting. Since Windows does not support legacy drivers each new release makes any special IO devices unuseable in about 4 years. Recently I have noted: The latest C++ specs were mostly ignored. Apparently those who actually write code are not interested in new ways to do the same old things. I got tired of Python and put it away for a while when I got to the matter of string handling. To me, the old way was concise and complete. The real attraction is that the package (Pyton.org) is free, can be run as an interpreter or compiled and is extensively cross platform. I have not got to JAVA yet but its popularity and flexibility makes it a must do. As soon as any programming package becomes popular there seems to be a movement to fragment away from any standards. Kind of a "Tower of Babel" event. C/C++ is available as open source and free. It works well and would probably be a good starting point for you. The whole Open Source movement is worth joining. Most software seems to become available well ahead of any written documents. Nearly anything you want to learn has a good YouTube Tutorial as well as free online tutorials. No individual can do everything, there is just too much. That has not changed.
I've thought a lot about your remarks, and they make real sense!! In the 20 years I've been away from the business, I've dabbled a bit with a few languages and have done some coding for a few Open Source projects. I must say that I really enjoy the fact of having Open Source available! It has made it possible for someone like me to sort of keep my hands "wet" without having to make major investments or direction changes... I'm feeling stoked again to dust off the old C/C++ and see how much I remember... and to get involved in something! Thanks again for your input!!
-
I've been in a similar situation. I took some comp sci classes in college (late 70's to mid 80's; degree in chemical engineering) and around 1990 took an extension class in OOP with C++. I maintain a handful of small programs at work (LOC in the 100s for each program), originally C++, then VB 6.0 and .NET, now C#. You may benefit a lot from looking at strategies rather than specific languages, depending on what you learned in school. A quick summary might be "Agile Programming" concepts. I found the shift from console programming to GUI programming a steep learning curve. Especially be aware of the separation of interface logic and model logic (Model-View-Controller and similar paradigms). When you are ready for a specific language, concentrate on one well-suited for the tasks you plan/want to do. I would also encourage looking into a functional language; even if you don't use it you will learn things that can make your programming better. In the long run, you will probably spend much more time learning the framework(s) used with the language than learning the language itself. To some extent, though, some languages are nearly synonymous with a framework (e.g., VB and C# are usually used with .Net).
I've actually wondered about some of the things you have brought up. Through the years I've dabbled a bit through Open Source available stuff, and have found some of the GUI/paradigms difficult to both interpret and learn. I have the opportunity to take some online courses, so I probably will take something in this line to get some structure in this area. Thanks again for you insight and input!!
-
I took a 13 year sabatical to do volunteer work, then came back to programming 5 years ago. My main professional experience was C back then (mid 80's early 90's). All the software recruiters laughed in my face and told me not to expect much in the way of salary. It took me 3 months to land a C++ job where my starting salary was 50% higher then what they are paying for those newfangled-latest-thing-web-developer jobs. The vast majority of job listings out there are web development for some company that doesn't know anything about computer science and doesn't care and just wants some code monkey to build / maintain / update their web-site. They want to pay you a code monkey salary and they think they can because there is always some bright eyed kid who thinks he knows everything about computers who is willing to do it for less since he doesn't have a family to support. There are still lots of work that is done in C/C++ and fewer engineers who can do that work (all of who expect to be paid a decent wage). A computer is still a computer no matter what form it is, and somebody still has to write the code that talks to the bare metal -- if you had skills in that area, they are still relevant. If you didn't have skills in that area, there is actually less to learn in that arena then learning all the API's and frameworks of the latest thing. If you are looking to get back into the business professionally, then go with what you know. It's still useful. After getting a decent job doing what I know well, I got a side job doing iOS apps. (I didn't need the money, I just prefer somebody to pay me when I'm learning something new.) Objective C isn't that different from C++ once you get past the weird syntax and wrap your head around the Apple reference counting memory management. You just have a reasonably size API with poor documentation and a worse IDE to deal with (but that's what you had 20 years ago). Your average smart phone is memory constrained (nothing new there either) and it just has a lot more pixels than you are used to. From there I've branched out to various web related technologies because sooner or later your smartphone app has to interact with the internet. (And again, I was getting paid to learn it since it was related to the iOS stuff.) If you aren't looking to do something professionally, but just want to get into it for fun -- then go ahead and dive into some web-stuff. Skip C#, you already know C++ and the only thing new in C# is garbage collection and a HU
Through this question here, I've understood that I still have viable knowledge, albeit dusty and forgotten, and that has been a real vitamin injection!! I sort of feel I need to stop thinking about making my code really effective. I've understood that performance isn't really an issue (except for games I guess)...
-
Well, from one "old fart" to another I'd say studying C#, VS.Net and SQL Server might be a good bet. If you're so inclined maybe a web development technology but you don't have to go that route. There's a lot to do out there. Suggest, though, that you pick one major technology (whether that be .Net, Java or whatever) and stay with it awhile. I made the mistake of spinning my wheels trying to keep up with too much. Once I got focused on one technology I learned it much more quickly than by trying to bite off too many different flavors all at once. -Another Old Fart
Well I hear you, and been-there-done-that (my wife suggests I still do) I'm going to dust off a few things and have some fun!!!
-
I wanted to give a constructive answer to this question. As far as technology, "Not much." Compiler support for C++ has improved, but it's still mostly the same language. C++ was already mainstream 20 years ago. Microsoft has released three whole new programming APIs in the last 20 years depending on how you count them. But Microsoft had released a couple of new APIs in the period right before that, so nothing new there. You will have the advantage of not having wasted your time learning several great new things from Microsoft. In 1990 people were talking about functional programming as if it would be the next big thing. And 20 years later most of them are still talking. Moore's Law has not changed in 20 years. But the consequence of Moore's Law is that computers are a thousand times faster. And a consequence of that is that toy languages built by individual people run fast enough these days to do real work. So there are more language choices. Unless you want to go fast, in which case you have basically got C++ or some languages nobody uses. Teams are the same; full of geeky people, with all the joys and challenges of working alongside geeky people. If you like teams, that's good. If you hate teams, that sucks. Fewer women though. I personally think that's sad. What's Different The software industry really took off about 1995. A lot of code bases got their architecture laid down during the late '90's. So today there are relatively more jobs maintaining creaky old code bases, and relatively fewer jobs doing new code, than 20 years ago. The skill set for maintaining creaky old code bases is a little different than the skill set for writing new code. This one factor may most affect your employability and the enjoyment of your work. Another consequence of the industry taking off in 1995 is that the average developer is younger today than 20 years ago. There are at least fifty times as many working developers (in the U.S., but basically everywhere else too) today as there were 20 years ago. That means the average I.Q. of a developer is much closer to 100, with the kind of results you'd expect. With developers less mature and less intelligent (on average, I'm not talking about anybody on this site :-)), and with relatively less green-field coding going on, it seems to me that management has gotten harsher and probably also less competent due to the same growth-related force. So there is more work that is dreary and it's harder to find staff fit for really interesting work.
Thanks for your insight and input!! It sort of sounds like "Same, same, but different" I'm European based so it will be interesting to see what is valid here, but I'm sure its about the same... Thanks again!
-
I'd take a look at some form of Java. It will be familiar to a C++ programmer. It runs on many different platforms. It's so similar to C# that you'll actually end up building .NET skills (or, at least, learning more contemporary thought processes) in a roundabout way. My academic background is in C++ as well, and I've done a lot of .NET professionally (you can't always expect your bosses to have good taste :) ), but I've never had any trouble picking a Java project up quickly and being productive. To call it C++ with a lot of the stupidity filtered out is an oversimplification, but not an entirely unreasonable one.
C# and Java are two of the languages I've dabbled with over the years. I've even been involved in a Open Source project using Java, and found it rather workable!! Thanks for your input!
-
I’ve coded for most of the past 20 years. C/C++ has given birth to many variants including C#, Java, JavaScript, PHP, etc… C# is huge; however I’ve seen an arrogance around it that just turns me off. BASIC (my favorite) is still alive and strong with a host of its own variants. Unfortunately it still endures a stigma regardless of any specific variant’s actual capabilities. SQL variants dominate most relational database programming. A NoSQL[^] movement also exists, however I'm not up to speed with it. Oddball syntaxes such as Erlang, Haskell, and Lisp have features that give food for thought. I’d say the biggest change has been in paradigms; specifically OOP[^], AOP[^], and functional[^]/declarative[^] (think HTML, XAML, SQL) to name a few. In short, if you’re looking for a star then grab a telescope. If you’re looking for a programming language then first ask yourself what you want to program. Use that as a guide to pick a language. Wikipedia has a few comparisons that might be helpful here[^] and here[^]. When in doubt, learn them all! (It can only help.)
I must admit that I've found the sheer number of languages/paradigms somewhat mind-boggling. Through this question here I've understood that I can dust off a few things and have fun with that... and so I will! After that I'm going to look at some of the paradigms you brought up and see what they are and get a feeling for them. On a sidenote, I have a stepson that thoroughly enjoys Haskell and Erlang, but then again he is a CS major... Thanks again for your input!!
-
Well I hear you, and been-there-done-that (my wife suggests I still do) I'm going to dust off a few things and have some fun!!!
That's the key. Have fun with it. I make a six-figure income from something I just wanted to do to "have fun" about 35 years ago. It was never about the money. Funny how things work like that. -cb
-
That's the key. Have fun with it. I make a six-figure income from something I just wanted to do to "have fun" about 35 years ago. It was never about the money. Funny how things work like that. -cb
That's when you do your best work too!!!
-
I get it... I want a T1 myself!
Actually, Hunter, you don't need a T1 anymore. (That is SO 1985!). Now you just get a cable modem and a Road Runner account with a 40Megabit-Per-Second connection! -cb ;)
-
PRO TIP: It isn't going to ever happen. After years of promising this the fact is we are worse of today than 10 years ago because we now have different form factors. It appears the whole thing is getting worse to me and I expect soon to have a request to build a website that looks good on a clay tablet or as a tattoo on an elephant's arse.
-
Wow! Never thought of this!! Fun stuff!! Also never thought that .NET could be used with microprocessors... beats coding assembler (which I've done a bunch) I've got a close friend that works at a microprocessor manufacturer and we have all kinds of interesting talks, all the time about this very subject, but more on R/C aircraft. I could use a snake-like drone now to wipe out some rats that are in the attic!!!
Have a look at these fantastic offering! http://www.robotshop.com/ghi-fez-rhino-net-microcontroller.html[^] http://www.tinyclr.com/[^] http://www.pololu.com/catalog/product/777/resources[^] http://www.mindsqualls.net/MotorControl.aspx[^]
dev
-
Dave's not here, man.
"Microsoft -- Adding unnecessary complexity to your work since 1987!"
-
Dave's not here, man.
"Microsoft -- Adding unnecessary complexity to your work since 1987!"
-
I must admit that I've found the sheer number of languages/paradigms somewhat mind-boggling. Through this question here I've understood that I can dust off a few things and have fun with that... and so I will! After that I'm going to look at some of the paradigms you brought up and see what they are and get a feeling for them. On a sidenote, I have a stepson that thoroughly enjoys Haskell and Erlang, but then again he is a CS major... Thanks again for your input!!
glad to help
-
I've been away from the business about 20 years now. I studied CS in the early 90's when C++ was the upcoming star, to find out that it is old hat now-a-days. I've been side-tracked by accounting and it would be interesting to find out your take as to what an Old Fart like me should update my skills with...
If you have nothing constructive to say, be silent!
As someone said, there are many paradigms. I like everything done by pragmatic programmer, but there is a book Seven Languages in Seven Weeks that gives a good survey of what's out there.
-
I've been away from the business about 20 years now. I studied CS in the early 90's when C++ was the upcoming star, to find out that it is old hat now-a-days. I've been side-tracked by accounting and it would be interesting to find out your take as to what an Old Fart like me should update my skills with...
If you have nothing constructive to say, be silent!
PHEW! The first 40% of my career was dominated by C/C++. This didn't mean I didn't program in anything else (just for business, by 1997 I'd programmed in C, C++, Pascal, 8086 assembly language, Dos batch, Rexx for OS/2, and SQL, and Microsoft Basic in its several dialects before VB6 and Office 97). Now, I rarely if ever write anything in C++, and only slightly more frequently in pure C. It's all either VB.NET or C# on the server, Javascript (with some VBScript on some legacy ASP apps) in web browsers, and lots of SQL. SQL has become the standard database query language. Any developer working with commercial databases will eventually wish they knew SQL. It's not new, though. I strongly recommend giving Javascript some time and thought. Despite its syntactic similarities, it is NOT much like C/C++. The Code Project's Daily News recently referred to a Java JVM with compiler and decompiler that had been written in Javascript - this ring a bell with the way C was pitched to us back in the distant past? Yet Javascript is more like Lisp in the way you can instantly create and redefine classes and instances at run-time. It's the base language for most of the client frameworks on the web, making it an essential stop if you plan to play with web programming. It's not new, but it is the bricks from which much shiny new stuff is being made. Java, or rather the Java Virtual Machine, is the current "universal language." The Java Virtual Machine insures that Java code will run identically on an 80386 relic or an MVS mainframe and everything in between, including a host of smart devices that live in your home and car. Think of how you would build C/C++ for folks who you never want to bother with what's actually inside their data (you know, like BITS) and that's Java. C# on the .NET environment is similar, but much less portable. Go and Dart seem to be the contenders for a new system language to do what C once did. Dr. Dobb's Journal has some interesting articles about these. I'll skip the functional languages, except to say that if you've never played with Lisp, they will change your world. Any of them will do this, so I suggest you try any of them. It will open your mind to new ways of thinking about computation. That should do for starters :cool:
"Seize the day" - Horace "It's not what he doesn't know that scares me; it's what he knows for sure that just ain't so!" - Will Rogers, said by him about Herbert Hoover