|
Well, I'll tell ya' somthin'.
I got me a lot more tools'n'stuff to use but my brain's get a bit older. So full'o stuff I learned that it might be there's no room for any more.
Maybe, with time, the price of time is on the coders, not the code.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
More complex projects.
Less talented or at least eager to learn juniors.
VII. 36. When you surround an army, leave an outlet free. Do not press a desperate foe too hard.
SUN-TZU - Art of War
|
|
|
|
|
I have spotted the long waves that do not change over many years and the short waves that change every year, the frequency of them short waves has increased but them short waves have not changed much. Overall it seems every company starts at 0 instead of building upon past experience. And that I find disappointing.
|
|
|
|
|
Every time I get the functions working smoothly, the basis of the approach is deprecated.
Every time I get the deprecated code replaced, they change the compiler.
Every time I get the new compiler flags set, they change the API.
As soon as I have adapted to the new API and everything compiles, Microsoft comes out with a new version of Windows.
Then the client calls and wants to know if it still runs in Windows 2000 in 32-bit.
And then the printer runs out of toner.
And then someone suggests we should be doing everything in Linux whether our clients know what that is or not.
And then I have to hide the body.
|
|
|
|
|
Don't know if this is related but for example to create a web application you need for example to know:
HTML, CSS, Javascript, .NET MVC, Razor......................
Why ?? Why so many toools?
When for example to create desktop app C# and Winforms suffices - this I call programming.
|
|
|
|
|
It has become easier for me, though I tend to implement new technologies much slower than the industry norm. I'm using the latest and greatest of selected technologies from 2012 through 2014, not 2016. I like to wait for a technology to mature before going head first into it. And then I expect things to move slowly for the first project or two with it.
|
|
|
|
|
Normally, as it gets easier, the customer will requires more an more feature until it's becoming difficult again!
We might have reached peak feature then?
Since it's getting easier and easier for me to write software which does more and bug less than before!
|
|
|
|
|
I've been at it for 20-odd years and I'd say that the main difference is that we have moved from the first 99% of the job taking 99% of the time to the last 1% of the job taking 99% of the time.
|
|
|
|
|
It's harder because in the past the applications were less complex.
The applications were more like, one language, one application, one database, one input screen, one search screen, one output screen, one computer, one OS.
Now the applications have to access dozens of databases running on different engines. The heart of the program is written in a language, the display in second one, the user interactions in a third, the database requests in a fourth. The output must accommodate different resolutions from a smartphone to a 4k display, be graphical with a lots of screens, with charts, tables, inter-applications links, etc.
What final users sees as one application is spread on different machines, database servers, applications servers, web frontal, load balancers, firewalls, … all running in clusters spread on different locations running on different technologies, Linux, Solaris, Aix, Windows, Z/OS, …
So the complexity increase.
The tools we use now for developing are better, faster but are also more complex. How many external libraries are you using for an application, do you understand all the hints and bits of it? How many frameworks? How many middleware’s? How many different languages? How many OS?
|
|
|
|
|
maybe I am unique but I recall working on financial applications back in the early 90's that involved multiple OS's, programming languages, databases, servers, computers, users.
|
|
|
|
|
Yep. Back in the late eighties I was writing terminal (VDT) software to interface to multiple systems, all with different apps, DBs and OSes, pull the right info from the right machine and summarise it for operators. In Z8000 assembler. On a 10MHz processor, with 300Kb of RAM / EPROM.
These days, it'd be a cluster of 3GHz / 8Gb networked servers under Windows and .NET...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Actually, with virtually unlimited memory, storage, CPU time, and the massive libraries of algorithms created in 'the old days' you're jobs a hell of a lot easier.
DOS had 1MB of working memory space, of which 640KB was addressable, and of that, the OS and Video used some. Add more memory? Well - now you had to also work out swapping 16KB page frames from extended memory into the addressable memory.
You've got yourself a cake-walk.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
I have been at this for over twenty years and while we are definitely doing more with software the challenge of getting the work done has definitely improved.
the tools and resources available today far outweigh what was available when I first started.
|
|
|
|
|
Agreed - the tools are so much better than those I had many years ago. That by itself has made the biggest impact on my productivity.
With all of the open source availability of libraries, tools and other items that are available, I'm spending more time developing solutions instead of reinventing the wheel over and over again.
Now frameworks on the other hand are a different story....
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."
-- Marcus Brigstocke, British Comedian
|
|
|
|
|
Which OS should I use?
What language should I use?
Which tools should I use?
Which cross-platform tool should I use?
Which DB should I use?
SQL or NoSql?
Which MVVM framework should I use?
Which WinForm / WebForm components should I use?
What communication protocol should I use?
What test suite should I use?
What source control system should I use?
Which source control host should I use?
What web server host should I use?
What development methodology should I use?
etc...
|
|
|
|
|
Well said, Marc!
Gone are the days when a newbie could buy a book at Barnes & Noble on Amazon, read it through, and start creating usable programs in a few weeks. It takes months of effort to even create the outlines of a functioning application, given all the different frameworks and non-intuitive tools needed. For someone fresh out of school, reasonably current in new tech, it's probably easy, especially when working at a job where it's a constant immersion in the stuff. But for an old fart who just wants to write simple apps for personal use, it's near impossible to find the time to master even a fraction of the new crap.
Will Rogers never met me.
|
|
|
|
|
I agree. When I started to write code professionally I didn't have to make any decisions. I wrote in FORTRAN IV on an ICL mainframe via coding sheets that were punched to 80-column cards. No options, no multi-anything, no PCs. Simples!
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
Or just post it in QA and hope someone writes it for you...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
|
I can accomplish so much more with all the libraries and tools that are available to me now. I used to have to code and debug every moving part of a piece of software. I used to have to build my own data structures using pointers, and now I just instantiate a class. It is FAR easier.
Outside of a dog, a book is a man's best friend; inside of a dog, it's too dark to read. -- Groucho Marx
|
|
|
|
|
I agree with (almost) everything you have written, but with one caveat - the tasks we are being asked to perform have also grown in complexity. Hence, in my opinion, despite the improvement in the tools, the overall job has remained at about the same difficulty, and I've been at this for 30 years now (and boy, am I tired ).
|
|
|
|
|
You and I have been at for about the same amount of time...
I find that more of my time is spent understanding the complexity of business rather than the complexity of coding, so I would have to agree with you. In my case, the change has been a welcome one.
Outside of a dog, a book is a man's best friend; inside of a dog, it's too dark to read. -- Groucho Marx
|
|
|
|
|
...because they just follow simple orders from "senior" and all they need is handy IDE. But for architects and seniors it's DOUBLE harder, because now they work with tons of problems which didn't exist before (or was not so important):
Security, robustness, easy integration, flexibility for extending/adopting new requirements/scalability, handy(and pretty) UI, large data, performance, etc etc.
If under DOS you could create simple screen with 10 text inputs and it was "document management", now it's 10 times bigger and harder task. My brains explode when I think how much I should assume before even drawing first scheme rectangle!
|
|
|
|
|
Speaking as someone who was a coder before 1995, took a break and have now come back in the last two years, yes it is WAY harder. I agree with Thornik's statement, especially as the programs become more and more complex, and require more and more collaborative an effort. I personally find it hard to find people who have the same philosophical stance as myself, about making the coding tight and fast. Most of the tools out there are not designed for tight and fast, but rather provide far more features than I need at the expense of efficiency.
It is easier to make terrible code. I can go build myself something by linking libraries together without an understanding of how they work, but that's not really software development - although I can call it that, and provided my ethics and morals are that loose, everyone will agree.
But then again, a lot of customers don't seem to want fast and tight, either...
|
|
|
|
|
Quote: a lot of customers don't seem to want fast and tight
...and I can tell you why: modern PC has more than enough capacity and for user doesn't matter operation finishes in 0.1 sec or 0.00001 sec - in both cases he see no difference due to human limits. But making program with 0.1sec performance is way faster - why not to use it? (and save time to implement more features)
Remember about "premature optimizations": you can waste a lot of time on things nobody even see! (like it happen in most GUI apps)
|
|
|
|
|