Modern Software Sucks
-
- Elite Upper Class Poster
- Posts: 3475
- Joined: May 18th, 2008, 1:16 am
- Location: El Paso, TX
- Contact:
Modern Software Sucks
I have been programming a long time, and I see how putrid modern culture has ruined software. A few decades ago, programmers actually cared about their software. Elegant software was written, things like Unix, C, and Java. Recently all software is just shit. Nothing is elegant. Everything is a disgusting hack. Programming has become the miserable task of making someone else's shitty software tools work.
I spent my whole day today trying to script Adobe Acrobat to do a simple task. I have never seen such pathetic software as Adobe's. I just want to scream "f**k YOU ADOBE!"
I spent my whole day today trying to script Adobe Acrobat to do a simple task. I have never seen such pathetic software as Adobe's. I just want to scream "f**k YOU ADOBE!"
Meet Loads of Foreign Women in Person! Join Our Happier Abroad ROMANCE TOURS to Many Overseas Countries!
Meet Foreign Women Now! Post your FREE profile on Happier Abroad Personals and start receiving messages from gorgeous Foreign Women today!
It should be obvious that the modern whorporate environment can not generate quality software. Things are broken down into artificial compartments by managers who have no understanding of software development and then programmers have to program within them. This means that no-one can get the big picture in order to come up with elegant solutions and there is no pride of ownership. Then there is the constant administrative harassment under the guise of regulatory compliance and the fact that programmers are "managed" by pathetic incompetents who can't even read code. The system seems to be intended to fail.
Too much Indian/Asian code being used these days. We Brits learnt our skills on ridiculously underpowered micro computers, so we write tight code.
I was Happier Abroad for a while but Covid killed that off.
Fed up with being foreveralone.jpg? Check out my comprehensive directory of dating sites.
Love Chinese girls? Read my complete guide to Chinese dating.
Fed up with being foreveralone.jpg? Check out my comprehensive directory of dating sites.
Love Chinese girls? Read my complete guide to Chinese dating.
-
- Experienced Poster
- Posts: 1383
- Joined: August 23rd, 2007, 9:17 am
There's still great software out there. I do most of my art on the French made TVPaint software, which began life on the Amiga computer, over 20 years ago. Back then, software had to work before it was shipped out the door. There were no patches, or nearly monthly bug fixes and updates to be constantly downloaded to fix what should never have been released in the first place, like today. Back then, when that disk shipped, the software had to be damn near perfect. They still do that today. The only software I use without having to save every few minutes for fear of crashing and losing everything.
“Booty is so strong that there are dudes willing to blow themselves up for the highly unlikely possibility of booty in another dimension." -- Joe Rogan
-
- Elite Upper Class Poster
- Posts: 4898
- Joined: August 31st, 2007, 9:44 pm
- Location: Orange County, California
The "system" was originally designed by US DoD (Department of Defense), used by the Navy for the Polaris missile project. PMP methodology's WBS (Work Breakdown Structure) is based on US DoD MIL-STD-881 military standard. The purpose was never to design for elegance, it's to deliver missiles on time that fits in the sub and works (will fly to Russian city and nuke it) when you push the big red button.Cornfed wrote:It should be obvious that the modern whorporate environment can not generate quality software. Things are broken down into artificial compartments by managers who have no understanding of software development and then programmers have to program within them. This means that no-one can get the big picture in order to come up with elegant solutions and there is no pride of ownership. Then there is the constant administrative harassment under the guise of regulatory compliance and the fact that programmers are "managed" by pathetic incompetents who can't even read code. The system seems to be intended to fail.

-
- Elite Upper Class Poster
- Posts: 3475
- Joined: May 18th, 2008, 1:16 am
- Location: El Paso, TX
- Contact:
Sorry but one can't entirely blame corporations (bad as they are) or Indian programmers. The thing is that all software today sucks regardless of its source, whether corporate, government, open source, or whatever. Programmers are part of modern culture too, and so they have no taste anymore. Recent programming languages like Scala are just hideous. It is like political correctness in programming, conforming to stupid arbitrary ideas instead of going for innovative elegance.
Re: Modern Software Sucks
Isn't Java a disgusting hack?fschmidt wrote:I have been programming a long time, and I see how putrid modern culture has ruined software. A few decades ago, programmers actually cared about their software. Elegant software was written, things like Unix, C, and Java.
-
- Elite Upper Class Poster
- Posts: 3475
- Joined: May 18th, 2008, 1:16 am
- Location: El Paso, TX
- Contact:
Re: Modern Software Sucks
Well, opinions about languages are subjective and language wars are senseless, but I like Java. That is what I use.Cornfed wrote:Isn't Java a disgusting hack?
Cornfed, are you a programmer?
Re: Modern Software Sucks
No.fschmidt wrote:Cornfed, are you a programmer?
- E Irizarry R&B Singer
- Elite Upper Class Poster
- Posts: 3113
- Joined: April 18th, 2013, 5:26 pm
- publicduende
- Elite Upper Class Poster
- Posts: 5083
- Joined: November 30th, 2011, 9:20 am
Writing software is a lot like designing and constructing a building. The balance between form and function, elegance and efficiency can be as good as you like, but if the final product doesn't do what the customer wants (or needs) and is not delivered on time, then it's next to useless.
True, back in the 70s and 80s computer programmers were wizkids able to understand how "the metal" (the inner workings of the machine) worked: memory access and management, interrupts, performance, everything was understood and fine-tuned to the last assembly instructions. Then as projects became larger and more complex, and compilers became more popular, more and more of those programmers started to use languages like C or C++, where one had a good mix of lower-level primitives as well as higher level constructs. As compiler became more sophisticated, the machine code they spat out was often of better quality then any programmer could have done by writing in assembly.
The modern software engineering industry is far from those pioneering times, true. There are more developers, and they all resort to very high level programming that completely abstract away a lot of the functionalities of a modern PC. This is partly because the paradigm of the modern PC is that of a modular machine, where capabilities in terms of OS, CPU, memory, graphics, disk etc are not (or cannot be) known in advance. Of course piling abstraction layer over abstraction layer doesn't help with performance, but it does allow for software to be written in a hardware-agnostic, more modular way, which ultimately means it makes the job of developing the required fuctionalities easier and faster. And this is why modern software engineers working in, say, C#, needn't exactly be genuises, can often work in team of relatively specialised members (the GUI guy, the middleware guy, the database guy, the QA/tester etc.).
Of course lots of people can bemoan the end of that "golden age" of software programming, but they cannot forget that:
1) there is much more software in the world right now because more and more software was needed in the first place;
2) in the past 15 years, there have been a lot more software jobs, which translates in more quantity but not necessarily more quality; I would actually say the percentage of good (= competent, passionate, innovative, hard working, etc.) developers is no more than 25% of the total;
3) the software industry is commoditising a lot, and most companies can still get what they want in terms of quality and delivery times by outsourcing to markets where a good developer can be bought for $1000 a month, and a Phd-educated team lead won't cost more than $2500.
So, if modern software "sucks" is because of a mix of factors. I surely wouldn't want to look at huge behemoths like Adobe as examples of good software. A few years ago Microsoft themselves have learned that moving around elephant-sized teams and BUs and getting stuck into politics and infighting didn't help at all. As a consequences, they have created lots of smaller and leaner team, some of which have come up with pretty good examples of software technology. WPF, the latest ASP.NET MVC and Azure, Reactive Extensions are just some of the examples of software that might not be utter perfection, but "doesn't suck" and doesn't pose major problems and learning curves to their users.
If one then refers to software products not meant to the developers community, but to final productivity users, then quality isn't something only related to how fast or sophisticated the product is, but how easy and intuitive it is to use, how fast one can learn the 20% of the functionalities used 80% of the time, how stable it is, etc. About the idea of software being shipped when it's not 100% functional and stable: true, we live in an era when it's dead easy, indeed automatic, to upgrade to the latest version or run the latest patch after downloading it from the Internet. There's absolutely nothing wrong in leveraging new methods of distribution and deployment. Every company shipping sub-standard products should know (and in most cases do know) that they are placing a bit bet on their reputation in exchange for the short-term gain of beating a competitor on time, colonising their market niche a bit earlier and faster, leveraging specific user needs or opportunities, etc.
About the connection to the "whorporate environment", useless to comment...another baseless rant from the usual CF.
True, back in the 70s and 80s computer programmers were wizkids able to understand how "the metal" (the inner workings of the machine) worked: memory access and management, interrupts, performance, everything was understood and fine-tuned to the last assembly instructions. Then as projects became larger and more complex, and compilers became more popular, more and more of those programmers started to use languages like C or C++, where one had a good mix of lower-level primitives as well as higher level constructs. As compiler became more sophisticated, the machine code they spat out was often of better quality then any programmer could have done by writing in assembly.
The modern software engineering industry is far from those pioneering times, true. There are more developers, and they all resort to very high level programming that completely abstract away a lot of the functionalities of a modern PC. This is partly because the paradigm of the modern PC is that of a modular machine, where capabilities in terms of OS, CPU, memory, graphics, disk etc are not (or cannot be) known in advance. Of course piling abstraction layer over abstraction layer doesn't help with performance, but it does allow for software to be written in a hardware-agnostic, more modular way, which ultimately means it makes the job of developing the required fuctionalities easier and faster. And this is why modern software engineers working in, say, C#, needn't exactly be genuises, can often work in team of relatively specialised members (the GUI guy, the middleware guy, the database guy, the QA/tester etc.).
Of course lots of people can bemoan the end of that "golden age" of software programming, but they cannot forget that:
1) there is much more software in the world right now because more and more software was needed in the first place;
2) in the past 15 years, there have been a lot more software jobs, which translates in more quantity but not necessarily more quality; I would actually say the percentage of good (= competent, passionate, innovative, hard working, etc.) developers is no more than 25% of the total;
3) the software industry is commoditising a lot, and most companies can still get what they want in terms of quality and delivery times by outsourcing to markets where a good developer can be bought for $1000 a month, and a Phd-educated team lead won't cost more than $2500.
So, if modern software "sucks" is because of a mix of factors. I surely wouldn't want to look at huge behemoths like Adobe as examples of good software. A few years ago Microsoft themselves have learned that moving around elephant-sized teams and BUs and getting stuck into politics and infighting didn't help at all. As a consequences, they have created lots of smaller and leaner team, some of which have come up with pretty good examples of software technology. WPF, the latest ASP.NET MVC and Azure, Reactive Extensions are just some of the examples of software that might not be utter perfection, but "doesn't suck" and doesn't pose major problems and learning curves to their users.
If one then refers to software products not meant to the developers community, but to final productivity users, then quality isn't something only related to how fast or sophisticated the product is, but how easy and intuitive it is to use, how fast one can learn the 20% of the functionalities used 80% of the time, how stable it is, etc. About the idea of software being shipped when it's not 100% functional and stable: true, we live in an era when it's dead easy, indeed automatic, to upgrade to the latest version or run the latest patch after downloading it from the Internet. There's absolutely nothing wrong in leveraging new methods of distribution and deployment. Every company shipping sub-standard products should know (and in most cases do know) that they are placing a bit bet on their reputation in exchange for the short-term gain of beating a competitor on time, colonising their market niche a bit earlier and faster, leveraging specific user needs or opportunities, etc.
About the connection to the "whorporate environment", useless to comment...another baseless rant from the usual CF.
- publicduende
- Elite Upper Class Poster
- Posts: 5083
- Joined: November 30th, 2011, 9:20 am
Re: Modern Software Sucks
I wouldn't have guessed.Cornfed wrote:No.fschmidt wrote:Cornfed, are you a programmer?
-
- Elite Upper Class Poster
- Posts: 3475
- Joined: May 18th, 2008, 1:16 am
- Location: El Paso, TX
- Contact:
publicduende, to be honest, I haven't been following the latest technologies for years. But the reason for this is that they have been declining for years and about 5 years ago I decided that the crap wasn't worth my effort to follow anymore. It has gotten to the point where if I need some function, it is easier for me to code it myself than to look at the horrible libraries out there.
So I ask you to point out one new technology where I will look at it and say "wow, that's neat". Some examples of this from the past were neat ideas that weren't practical, but at least they were fun and interesting. Examples include Lisp, APL, and Tcl. Examples of neat practical languages include C, Java, Python, and Lua.
When I write code, sometimes I toss it up on Google Code just in case anyone else may want it. But I know they won't want it because I focus on simplicity, not programmatic political correctness which is what the idiot modern programmers want. You can see some of my stuff here:
http://code.google.com/u/108023520737918088445/
So I ask you to point out one new technology where I will look at it and say "wow, that's neat". Some examples of this from the past were neat ideas that weren't practical, but at least they were fun and interesting. Examples include Lisp, APL, and Tcl. Examples of neat practical languages include C, Java, Python, and Lua.
When I write code, sometimes I toss it up on Google Code just in case anyone else may want it. But I know they won't want it because I focus on simplicity, not programmatic political correctness which is what the idiot modern programmers want. You can see some of my stuff here:
http://code.google.com/u/108023520737918088445/
- E Irizarry R&B Singer
- Elite Upper Class Poster
- Posts: 3113
- Joined: April 18th, 2013, 5:26 pm
I already know about the level of ignorant abstraction in 4GL and now 5GL languages with kernel API's or just API's in actually speak to assembly language of o's and 1's. C# and J2EE are very highly-leveled and concrete examples of emulating the aforementioned.publicduende wrote:Writing software is a lot like designing and constructing a building. The balance between form and function, elegance and efficiency can be as good as you like, but if the final product doesn't do what the customer wants (or needs) and is not delivered on time, then it's next to useless.
True, back in the 70s and 80s computer programmers were wizkids able to understand how "the metal" (the inner workings of the machine) worked: memory access and management, interrupts, performance, everything was understood and fine-tuned to the last assembly instructions. Then as projects became larger and more complex, and compilers became more popular, more and more of those programmers started to use languages like C or C++, where one had a good mix of lower-level primitives as well as higher level constructs. As compiler became more sophisticated, the machine code they spat out was often of better quality then any programmer could have done by writing in assembly.
The modern software engineering industry is far from those pioneering times, true. There are more developers, and they all resort to very high level programming that completely abstract away a lot of the functionalities of a modern PC. This is partly because the paradigm of the modern PC is that of a modular machine, where capabilities in terms of OS, CPU, memory, graphics, disk etc are not (or cannot be) known in advance. Of course piling abstraction layer over abstraction layer doesn't help with performance, but it does allow for software to be written in a hardware-agnostic, more modular way, which ultimately means it makes the job of developing the required fuctionalities easier and faster. And this is why modern software engineers working in, say, C#, needn't exactly be genuises, can often work in team of relatively specialised members (the GUI guy, the middleware guy, the database guy, the QA/tester etc.).
Of course lots of people can bemoan the end of that "golden age" of software programming, but they cannot forget that:
1) there is much more software in the world right now because more and more software was needed in the first place;
2) in the past 15 years, there have been a lot more software jobs, which translates in more quantity but not necessarily more quality; I would actually say the percentage of good (= competent, passionate, innovative, hard working, etc.) developers is no more than 25% of the total;
3) the software industry is commoditising a lot, and most companies can still get what they want in terms of quality and delivery times by outsourcing to markets where a good developer can be bought for $1000 a month, and a Phd-educated team lead won't cost more than $2500.
So, if modern software "sucks" is because of a mix of factors. I surely wouldn't want to look at huge behemoths like Adobe as examples of good software. A few years ago Microsoft themselves have learned that moving around elephant-sized teams and BUs and getting stuck into politics and infighting didn't help at all. As a consequences, they have created lots of smaller and leaner team, some of which have come up with pretty good examples of software technology. WPF, the latest ASP.NET MVC and Azure, Reactive Extensions are just some of the examples of software that might not be utter perfection, but "doesn't suck" and doesn't pose major problems and learning curves to their users.
If one then refers to software products not meant to the developers community, but to final productivity users, then quality isn't something only related to how fast or sophisticated the product is, but how easy and intuitive it is to use, how fast one can learn the 20% of the functionalities used 80% of the time, how stable it is, etc. About the idea of software being shipped when it's not 100% functional and stable: true, we live in an era when it's dead easy, indeed automatic, to upgrade to the latest version or run the latest patch after downloading it from the Internet. There's absolutely nothing wrong in leveraging new methods of distribution and deployment. Every company shipping sub-standard products should know (and in most cases do know) that they are placing a bit bet on their reputation in exchange for the short-term gain of beating a competitor on time, colonising their market niche a bit earlier and faster, leveraging specific user needs or opportunities, etc.
About the connection to the "whorporate environment", useless to comment...another baseless rant from the usual CF.
Good example: sorting algorithm. That doesn't have to be coded in several lines of code in C++ or ANSI C anymore. That can be done in ONE LINE OF CODE: method and parameters on the same line.
Object-oriented data structures like hash tables and dictionaries are trivialized by one line of code now with x-amount of parameters via method call and if applicable a data structure return value.
PS: HEY MAN! You could have said VB.NET in lieu of mentioning C# as being so high-level that geniuses aren't required. Arsehole. LOL
- publicduende
- Elite Upper Class Poster
- Posts: 5083
- Joined: November 30th, 2011, 9:20 am
It depends on what you mean by "simple" or "neat". If you mean a concise and "pure" syntax, you can look at some of the (semi-)modern functional languages like Haskell, Erlang and to a lesser extent OCaml and F# (which is the Microsoft version of OCaml). There are also languages that have evolved organically over time and, despite being neither concise nor neat, offer a wealth of features that are hard to beat. I believe C# is a very good example of a general purpose language that has borrowed the best from different paradigms and integrated it either at the language or API level. Here's a very good resource on the latest C# 5.0fschmidt wrote:publicduende, to be honest, I haven't been following the latest technologies for years. But the reason for this is that they have been declining for years and about 5 years ago I decided that the crap wasn't worth my effort to follow anymore. It has gotten to the point where if I need some function, it is easier for me to code it myself than to look at the horrible libraries out there.
So I ask you to point out one new technology where I will look at it and say "wow, that's neat". Some examples of this from the past were neat ideas that weren't practical, but at least they were fun and interesting. Examples include Lisp, APL, and Tcl. Examples of neat practical languages include C, Java, Python, and Lua.
When I write code, sometimes I toss it up on Google Code just in case anyone else may want it. But I know they won't want it because I focus on simplicity, not programmatic political correctness which is what the idiot modern programmers want. You can see some of my stuff here:
http://code.google.com/u/108023520737918088445/
http://www.amazon.com/5-0-Nutshell-The- ... 1449320104
Java started up as a great concept, but has suffered by the lack of thrust typical of decentralised authority/consensus development models. Too many gurus debating whether this or that feature had to be added or not meant Java has remained relatively stale. Java does have an edge in terms of optimised API available in the open source: one example are highly-concurrent data structures - very hard to find something better in the .NET world. The more interesting things happening in the JVM space are definitely not new version of Java. You could have a look at Clojure or Scala.
-
- Similar Topics
- Replies
- Views
- Last post
-
- 10 Replies
- 6576 Views
-
Last post by E Irizarry R&B Singer
-
- 0 Replies
- 5139 Views
-
Last post by Winston
-
- 0 Replies
- 1812 Views
-
Last post by galii
-
- 3 Replies
- 4671 Views
-
Last post by Ryan_Stevens
-
- 0 Replies
- 3047 Views
-
Last post by Johnny1975