Fatal Exception’s Neil McAllister gets into the holiday spirit with a post that gives thanks to technical advances for developers, including open source tools, modern IDEs, and distributed version control. ‘I’m old enough to remember when performance-critical routines meant hand-coded assembly language and sometimes even keying in machine code as hexadecimal digits. We’ve come a long way since those bad old days, and not surprisingly we owe a lot of our progress to technology. So for this Thanksgiving, here are just a few of the modern advances for which I, as a developer, give thanks.’ What are you giving thanks to?
For OSdeving : GCC/Binutils, GRUB Legacy, C++, Subversion and Bochs
For application dev : That minus Bochs and GRUB plus Python and QtCreator.
Edited 2011-11-23 09:18 UTC
SQL Server Management Studio … Intellisense with SQL Server 2008, takes the pain away from writing Stored Procedures.
I’m thankful for free and open source software. It saves me thousands of dollars to run Linux, OpenOffice, etc, etc, on my several computers instead of opaque, proprietary stuff from Microsoft and other vendors. Plus I have much greater control of machines I’ve paid for. What could be better?
Allow me to add something from my experience as a developer. The author mentions:
Online documentation and support
But what about offline documentation? In some settings, typically the weird ones that pay better, you sometimes don’t have the luxury of Internet connection to search some search engine, arbitrary web site, wiki or use page to find where documentation seems to be scattered across in our times. Those settings may consist in security environments or simply non-connected ones.
In such cases, you’re happy if the development you’re doing relies on a system that provides good offline documentation that you can access from your hard disk. Those may be development notes coming with the product you’re working with, HTML or text files, or even man pages of the system you’re using. And even source coe may be considered documentation. This all assumes that the documentation in question is of good quality. You can employ standard system tools to search that documentation, and in ultra-worst case, you don’t even need a web browser to do so. Or a mouse.
Of course, this is an opportunity for those who provide products. As the author also mentioned, this documentation cannot beat social media, mailing lists, message boards or wikis, especially in terms of “being up-to-date”.
And regarding
Modern IDEs
Sometimes you’re happy to be able to automate things, have less interaction, less fiddling with details. “Old-fashioned” things like a Makefile or a script can help here. The better those “low-level tools” interface with the GUI environment you’re using, the better. Still being able to use the “archaic” tools may also save your job in a worst-case situation where you can’t access the tools you’re typically working with. Getting the job done without them if urgently needed demonstrates the power of a good developer. In many cases, you can’t predict things, and if your everyday IDE dissolves beneath your hands and there’s still a job to be done, you’ll be happy about the professional skills of using “archaic” tools like text mode editors, compilers, Makefiles, debuggers and versioning system interfaces. Again, I’m not arguing as “either – or”, but as “together”. The more options you know, the more flexible you are. And in exceptional situations, this may save your job.
I remember the days of TSS when you would get billed for the amount of time you spent logged into your terminal. So we had to literally handwrite our programs then pass them to a team of women who’s job was just typists. They’d input our code then print out the errors so that we could then start the painful process of debugging by pen and paper.
Kids these days don’t realise how easy they have it with their ability to compile and digitally debug their own code same day (let alone instantly) and with meaningful error messages. Not to mention (not so) modern IDEs with watches (et al) and even tools like dtrace if you ever end up completely stumped.
(this is usually the point where someone links to that XKCD sketch about how real programmers use butterflies hehehe)
Or the Dilbert comic strip where we had to use the letter ‘o’.
I am thankful for Microsoft Windows. The consistency and standardization resulting from 15 years of Pax Windows after Windows 95 was a true blessing to hardware and software developers around the world. Now the pot is being stirred by every dick with a finger, and the path forward is unclear. In 10 years we might all be cloud computing with locked hardware. Three cheers for kit computers! *clinks glass and farts*
I’m thankful for online forums in which developers help out other developers. Like everyone else, there have been times when I’ve hit a road block trying to figure out how to accomplish something, and instead of having to bang my head against the wall for hours to figure out how to do a particular task, I can usually find great examples online. That has saved me a ton of time and many headaches.
I’m also thankful for third party tools – such as DevExpress and Infragistics – that allow me to keep my older Winform based applications looking modern and sleek, without any big performance hits.
Edited 2011-11-23 14:46 UTC
I’m thankful that I can use my own intelligence to develop a solution from scratch without referencing the work of others and not have to worry about being sued by some person that I never met that followed the same logical progression of ideas at some point in the past.
Oh, wait…
I’m thankful for syntax highlighting.
I’m thankful for not having to write my own c editor with syntax highlighting.
I did that once, it would have been more fun but I really used the wrong language at the time. It ended up being pretty buggy due to bugs in the controls I was using. But as an IDE it wasn’t bad. It did everything I told it to. Changing its behaviour was as easy as modifying the code and recompiling it. Options, smoptions.
I rewrote it for fun the other year for kicks. Its really sad how badly it compares to other free options.
I’m thankful for Sun, for the company, and the employees, and all that they did in the Java space — from the language, to the standards, to the tools.
They were not alone in bringing Java to the state (for good or ill, but mostly good) it is at in the industry today, but they were definitely the 800lb gorilla in the room. We’ve seen the two tacts that could be taken between similar technologies when we contrast how Sun and MS both handled their respective stacks.
Today, Java is a truly remarkable platform for building information systems upon, its mostly runs “everywhere”, it performant and powerful.
That capability empowers individual developers and industry small and large around the world. I don’t know what would have taken its place if Sun had not shepherded Java as it did, I don’t know what else could have risen up and have such a wide reach.
Not to discount all the thousands of people and the other large players (notably IBM) that have brought Java is where it is today, but a large part of it is because of Suns efforts.
So, thanks Sun.
I’ll join up with you americans.
I am thankful at Apple for going against the status quo. Apple is the undisputed leader in the mobile arena with the iDevices and iCloud. As much as I prefer WP7, there’s nothing better out there at the moment than Apple’s stuff.
I am thankful at Microsoft for finally going beyond the WIMP desktop metaphor. It is a clumsy inefficient relic from the 70ies. Balls of steel.
2012 is going to be awesome.
I am ever so thankful for my big, enormous, brain! For, without it, I’d be a pile of slimy goo and bones lacking in any direction… ugh… I’ve got a headache!! CURSE YOU BRAIN!!
Probably the biggest timesaver for all developers is hardware performance, no more handcoding in ASM or C anymore.
A lot just works with a scripting language or other high level language. You can even make it scale pretty well.
Caching in memory (with for example memcached in case of PHP) on the server solves the next scalability problems.
Cheap memory is obviously the reason that that is possible at all.
When I started getting into programming it was C or C++ or Java.
I never got much enjoyment out of anything until I started using python in my first university programming course.
Python is fun to use, easy to read and has been able to do everything I’ve thrown at it over the years.
I wouldn’t be doing any programming if it wasn’t for Python.
I’m thankful just to have a job. Plus also it’s a job I like (most of the time!)
+1 for Python and also
don’t forget Delphi, still the best tool for native win32/64 desktop apps, don’t knock it till you try it.
There’s a 64-bit version of Delphi? That’s cool. Thought it had disappeared into the dust bin of history.
It’s really too bad that Delphi wasn’t taught more in uni. There really was no comparison to VB6, yet that’s all the uni taught. I used to go home and do my homework assignments in Delphi … was so much easier than VB6.
It’s too bad Borland didn’t put more effort into Kylix. Would be nice to have a third option for GUI programming on Linux (QT, GTK+ being the other two). And to have another cross-platform, native-looking, toolkit.
Edited 2011-11-24 05:37 UTC
It is one of the new features on the latest version, released a couple of months ago.
Sadly in Europe most Delphi projects I am aware of, seem to be legacy ones.
C,C++,Linux and Vim ……….
As a small-time developer (really nothing more than a script writer), I’m very thankful for KATE. Between the syntax highlighting, the code folding, the vertical copy/paste (aka block selection), multi-file find/replace, and KIO integration, it’s made my scripting so much simpler/easier/better.
As a helpdesk user, though, I’m most thankful for VNC. I honestly do not know how we managed the first couple of years before we implemented this in the district, and I would not want to work anywhere that did not use something like VNC for remote support.
I’m perplexed no one has mentioned Eclipse yet.
Yeah it’s a bit complex at first, but I wouldn’t change with anything else. Oh wait, maybe Delphi.
And yes, I’ve used Visual Studio (at work, unfortunately) since version 95. VS2010 is a dog (seriously, Microsoft, WPF/DirectX in an IDE? Why oh why ? And it even tries to write in c:\windows as a regular user, great idea).
Oh, about MSSql2008 and intellisense… PL/SQL Developer did that like… 10 years ago.
Yeah I know PL/SQL did it ten years ago … but that is kinda missing the point … I have it now on SQL Server.
VS2010 runs like a Dog on XP … and I was still using 2008 at work for projects even though I had 2010 installed just because my 2GB of ram on my work PC didn’t cut it, as for Writing to C:\ as a regular user … I have no idea what you are on about … I work under group policy and I can’t even see my C:\ drive.
I’m talking about this one:
http://support.microsoft.com/kb/955692/en-us
Just an idea.
This could improve it
– DOS & Microsoft Flight Simulator 5.1, as that’s what got me interested in programming computers as a 7-year old kid!
– QBASIC and the two BASIC books in my elementary school’s library, as that’s what taught me to actually program and opened a whole new world for me.
– All the giants of the science of computation, such as Alan Turing, John von Neumann, et al.
– Dennis Ritchie, may he RIP, for the C programming language.
– Tim Berners-Lee, for the web.
– Netscape, for the web browser.
– Java, for introducing me to programming beyond BASIC.
– Linux, for introducing me to the *nix way of doing things, and all that useful CLI stuff.
– Robert Szeleney, for SkyOS, and its inspiration to me for my own OS dev’ing.
– SHAWN OS (“Sure As Hell Ain’t Windows Ninety-Five”), for teaching me in code how to do pmode, GDT, LDT, IDT, and all that fun stuff.
– v2os and unununium, for introducing me to other devs and IRC, even if some of them were a-holes
– IRC!
– Freenode!
– Eugenia Loli-Queru for what she made OSAlert to be. Ah, the good ol’ days.
And too many other things to count and which I take for granted…
Edited 2011-11-24 19:29 UTC
I’m extremely grateful for Linux, FOSS, GNU, freenode, Wikipedia, Linus Torvalds, Richard Stallman, Nouveau/Xorg/Wayland developers, and for all FOSS developers.
I can’t express with words how grateful I am for each of them. Without them the world would be much different and we won’t have the amazing things they gave us.
I think every Free Software developer is a true hero. And I thank each of them with all my heart.
Thank you Linux/FOSS developers.
Edited 2011-11-24 22:35 UTC
Quite a few are insufferable arseholes such as Ulrich Drepper.
Debian basically moved to eglibc because the guy was soo much of an arsehat.
http://blog.aurel32.net/?p=47
RMS thinks paedophillia can be consensual, and incest is okay … and thinks that those who pay for proprietary software are brainwashed robots.
http://en.wikiquote.org/wiki/Richard_Stallman#On_sex
They aren’t heroes.
Edited 2011-11-28 11:51 UTC
I’m not an RMS fanatic, but I think that you should be careful : if you keep those in their full generality (ie don’t specifically consider stuff such as child abuse and trans-generation incest), they are not the kind of extremely simple matters that you can handwave away with a “look, he’s wrong !”, like you can rather easily with his rampant paranoia and semi-crazy views on proprietary software…
As an example, in French law, you can be accused of pedophilia by the parents of the person you’re dating if there is an age difference as low as 3 years between you both (in case you are 18 and he/she is 15). This is not so large if you look at your everyday couple on the street, where age differences >= 5 years are common. As for incest between consenting adults, try to ask a random population out of everywhere in this world about what is the exact boundary of incest (cousins, etc…), and you will likely get very mixed results…
It’s not as much of a mindf–k for philosophers as euthanasia and gene patents, but it’s not a case on which your views are incontestably shared by everyone either.
Edited 2011-11-28 21:30 UTC
It was the first C++ GUI toolkit that actually made sense to me (coming from a Java/Swing background).