Part of the fascination with ML is the (dangerous) myth that you don't have to wrap your head around a complicated problem anymore, instead the solution will just magically fall out on the other side of the blackbox if you just feed it enough data.
Understand ing the intricates of the problems you are dealing with however is a value in itself.
«Part of the fascination with ML is» solving the mystery behind the ability to automatically build functions and behind those functions.
Surely, both in practice and axiologically, understanding and deterministically solving have a great value. Also because of that, the fact that systems exist that can adapt into solutions, but contain a transparency problem ("yes, but why"), contains an immensely fascinating theoretical challenge, in the learning that may come from the attempt to understand the "grown, spawned" (as if a natural phenomenon) system.
The laziness is not necessary: there is a great deal of fascination in unveiling the mysteries in the blackbox.
Then of course, when you have a practical problem to solve (instead of that intellectual challenge and promise), pick your best solution. And surely it is sensible to call it dangerous to rely on something not properly understood, which may hide the potential faults ("yes, we found out it fails here, and it may be that we kind of assumed it "saw" shapes, while really it "sees" textures..."). In professional practice those "active" fascinations (understanding the spawned) may be luxury.
It's one of the reasons why for specific problems, heuristics or statistics are way better than any attempt at nonlinear modeling / ML prediction (e.g. highly accurate climate models vs. struggling weather models).
Look at windows for example. Image how good that would be if they didn’t keep trying to fuck around with it and actually finished something.
Change is needed because people want to have jobs and they will make work for themselves if none exists.
Traditional jobs must have solved this problem somehow. You don't usually see e.g. windowmakers or installers coming up with windows in the shapes of superellipses because square windows are already solved, or stoves coming with integrated fridges because "just an oven and a top" is already solved.
Furthermore, you do see household appliances getting fitted with useless feature bloat and shoddy software and wireless and touchscreens on microwaves etc. It happens. IoT, subscription based software updates for power drills etc... Tractors that can't be repaired and contain a jumble of proprietary software as a service etc.
There was absolutely nothing wrong with the "ugly" framework code, it was quite beautiful, well structured, configurable and fast. Somebody didn't like that you didn't write java code and the properties file based DSL was indeed odd, but nothing wrong with it after you bothered to read the library code.
The Spring Batch code was more explicit, but much uglier, overall.
I'm sure there is far more to the story than the new guys doing a poor job writig a replacement service.
For example, old code does add maintenance costs just by the fact that it's either tied to old frameworks or even OSes, either of which might not be maintained anymore. Also, I don't feel it's a honest argument to criticize java for the sake of being java. If there was ever a production-minded programming language and tech stack, that would undoubtedly be java.
I'm sure the guys who designed the replacement service would have a few choice words regarding the old service.
Well, actually you do. You'd be surprised. Let's ignore for now that there are different window makes and models. There has been a transition from custom-made windows to ready-made windows, whose production cost is higher but the total cost ends up being low because you can have a crew drop by in a construction site and get it done in a few minutes.
Then there's the current progresses in energy efficiency, and also fancy gizmos like actuators and sensors and all kinds of domotics.
Then there's security systems embedded into windows, which further adds sensors and networking and actuators.
You're now far beyond your mom and pop's windows.
And progress ain't done yet. We're starting to see self-dimming windows and also self-cleaning windows.
Find a new need. Every good product (and many bad products) is an answer to some need. And the world's full of all kinds of needs that we can work on.
However, sometimes we start projects without proving they actually answer a need, or sometimes the internal corporate needs don't match the user's needs (I'm looking at you, integrated advertising in Windows 11).
I'm not saying you are wrong, but you aren't right. There is a balance. You can't stand still, but quality that comes from improving the current thing is important as well.
We have had a project where we were asked if our model would consider X. So we added X to the model but this didn't increase performance. Now the sane, simple answer would be to just ignore X. But then people come and ask why, doubt that it doesn't improve results, competition without ML considers X.
That doesn't happen (or is hidden) in a none ML situation where some decisions aren't questioned by a benchmark.
So yeah anything that's still running on VB6 is very likely crap.
At any rate even when it was maintained still looked down on, I guess a Dijkstra based side-effect.
No, it does not. It means that Microsoft no longer provides support for the IDE. That does not prevent the developer from maintaining their own VB6 code. With some extra steps, the official IDE and compiler for VB6 can still be installed on Windows 10. Running programs built from VB6 is still supported.
> written 2 decades ago with the coding standards of the era, the original developer team is gone and probably retired
This applies regardless of the programming language to any codebase that has been around for long enough.
If you're comfortable with this then I don't think you're actively investing in your software.
>This applies regardless of the programming language to any codebase that has been around for long enough.
No, if you have a team actively maintaining the project you have the knowledge transfer in-house which is the second part of that sentence.
What exactly does 'actively investing' mean in this context and why is it needed? If the software is actively maintained so that it continues to meet business requirements, is that not enough?
> No, if you have a team actively maintaining the project you have the knowledge transfer in-house which is the second part of that sentence.
That is orthogonal to what programming language is being used. When the project is actively maintained, knowledge can be transferred regardless of the programming language.
If you're actually investing in maintaining something that's running on a deprecated platform that's decade over EOL and nobody wants to touch with a 10 foot pole - that sounds like a crap project by definition.
Anything that's sufficiently funded to be actively developed would have figured out a migration plan by now, the only scenarios where it wouldn't sound like terrible projects to work on.
>That is orthogonal to what programming language is being used. When the project is actively maintained, knowledge can be transferred regardless of the programming language.
No it's not when the language is deprecated by the owners for over 12 years at this point. It's like having software that only works on windows xp and maintaining it because you can still boot a VM to run it. Good luck working on that POS.
The platform it runs on is Windows 10, which is not deprecated. Microsoft provides an 'It Just Works' guarantee on Windows 10 for VB6 applications. It does not matter whether someone wants to maintain code. The company pays people to do it. Just like how there are many people who do not want to work on proprietary software but do it anyway because their employer pays them to do it.
> Anything that's sufficiently funded to be actively developed would have figured out a migration plan by now, the only scenarios where it wouldn't sound like terrible projects to work on.
Actively developed means that bugs are fixed and features are added as needed by the business. It does not mean jumping on the latest tech trends when there is no business justification. And I am pretty sure that the users are happy that they can use a fast, responsive application instead of a lumbering, bloated Electron app.
> No it's not when the language is deprecated by the owners for over 12 years at this point. It's like having software that only works on windows xp and maintaining it because you can still boot a VM to run it. Good luck working on that POS.
That is a strawman argument because the VB6 IDE and programs compiled with it run on Windows 10 natively, without a VM. And running VB6 programs on Windows 10 is officially supported.
My point is that every time I've seen scenarios like this with products stuck on unsupported platforms is that product is used but there's no money in actively maintaining it (or else it would have made migration plans in the last 12 years). This means you are likely getting shit money working on it, working on a legacy stack you won't use anywhere else, codebase is almost always shit, and the work you do is unrewarding. So crap projects by definition, and every testimonial I've seen so far confirms it.
I've worked on projects being stuck on tech close to EOL - they always had migration plans to upgrade to supported tech.
I have worked on products with old tech stacks as well, e.g. a C++98 codebase for the core product of a multi-billion-dollar company, with no plans to migrate. New features were being frequently added, and the company's own standard library replacement that bridged the gap was itself actively developed.
Even they agreed it was shit though.
We have a COM component written in VB6 running in IIS on windows containers on Amazon in EKS.
It works but it’s crap!
https://en.wikipedia.org/wiki/Visual_Basic_(classic)
>The final release was version 6 in 1998. On April 8, 2008, Microsoft stopped supporting Visual Basic 6.0 IDE. The Microsoft Visual Basic team still maintains compatibility for Visual Basic 6.0 applications through its "It Just Works" program on supported Windows operating systems.
>In 2014, some software developers still preferred Visual Basic 6.0 over its successor, Visual Basic .NET. Visual Basic 6.0 was selected as the most dreaded programming language by respondents of Stack Overflow's annual developer survey in 2016, 2017, and 2018.
Stack Overflow Developer Survey 2016: Most Dreaded: Visual Basic: 79.5%
https://insights.stackoverflow.com/survey/2016#technology-mo...
Stack Overflow Developer Survey 2017: Most Dreaded: Visual Basic 6: 88.3%
https://insights.stackoverflow.com/survey/2017#most-loved-dr...
Stack Overflow Developer Survey 2018: Most Dreaded: Visual Basic 6: 89.9%
https://insights.stackoverflow.com/survey/2018#most-loved-dr...
I disagree that VB.net was dreadful. But it broke backward compatibility but I think for good reasons: arguments being byref by default in VB6, collections being inconsistently 0 based or 1 based, the SET keyword that wasn’t really serving any purpose and was inconsistently applied, having to provide parameters within brackets or between spaces depending on whether the return value is assigned to a variable or not, etc...
I have a lot of sympathy for the frustration of someone who has to maintain a huge code base when backward compatibility is broken, but I think the changes VB.net introduced were necessary.
I remember when my father had to use medicall services billing program supplies by a natinal health insurance company, and he had some problems with it.
Luckily, I was a student in Bucharest and I went to their headquarters to play middleman between my father and their "informatician".
This "informatician" was the sole architect, UX designer, developer, tester, release manager for this program -- VB6+ access.
I sort of helped him debug the code, he built me a special version and handed it to me on a CD.
The program was ok UX wise and blisteringly fast. Years later, they hired this corrupt company that built software for the State and produced a horrendous program, that took terrible and just the startup took 15 minutes (parsing hunonguous XML and inserting it line by line into a local sql database, as far as I remember reading the logs).
The contract ran into HUNDREDS or millions of euros. Granted, the scope of the program was a bit wider.