Recent

Author Topic: Are We Dead Yet?  (Read 24456 times)

SymbolicFrank

  • Hero Member
  • *****
  • Posts: 1315
Re: Are We Dead Yet?
« Reply #105 on: June 01, 2023, 12:09:16 pm »
You can write massive projects in assembly. Some of them still run. IBM wrote a whole office suite in JavaScript 25 years ago.

The thing is: that takes a lot of design and planning. You even agree with that. While the current design philosophy seems to be: quick and dirty throwaway apps. Which either run in a browser or on your phone, or both. Yes, that's something else than business software, right? Or is it?

How many companies still produce their own in-house software? Less and less. Software should be a service and belongs in the Cloud, right? The big software providers, like Microsoft, wholeheartedly agree. They cannot produce decent software anymore, anyway, and subscriptions bring in money every month, no need to produce something better every year.

And business software is becoming more like a portal to other, online services. It's a front-end to many REST services, with some business logic thrown in. Heck, much of the time, the encapsulation is just an iframe that supplies results through the accompanying REST API. Instead of writing things yourself, you make a list of all the services available online, and plug them in.

And you can either template an existing content platform, or a collection of libraries, like React and Node.js, to collect and display all that data. The bulk of the code runs in the browser, to display that data and allow you to interact with it. The work is in displaying it, yes, but more important: managing and extending all the REST services, the bulk of which is managed by third parties, which change all the time.

What runs on the server is mostly a collection of databases and micro-services. Written in the popular languages, as promoted by Big Tech. Mostly as a collection of anonymous functions that directly handle the URL routes and map to data in the databases. Here and there you find an obscure library with some business logic, often inherited, but it's mostly routing the data from the databases to the application that runs in the browser, on demand.

Together with the display logic in the browser, that's basically the stuff Lazarus does automatically for you when you make a desktop app. Rapid Application Development, as coined.

440bx

  • Hero Member
  • *****
  • Posts: 4735
Re: Are We Dead Yet?
« Reply #106 on: June 01, 2023, 12:51:06 pm »
Software should be a service and belongs in the Cloud, right? The big software providers, like Microsoft, wholeheartedly agree. They cannot produce decent software anymore, anyway, and subscriptions bring in money every month, no need to produce something better every year.
I have a lot of mixed feelings about software as a service and belonging in the Cloud.  I don't think it's a good idea.

I think the really old, yet tried and true software and hardware maintenance contracts really work and that's what the concept of "software as a service" is trying to sell (because selling a maintenance contract to Joe Consumer or teeny-business is conceptually a bit of a hard sell.)

I vividly remember companies I worked for paying several thousand dollars _a month_ for hardware and software support from the manufacturer.  Several thousands a month may sound like a lot of money but, it was actually cheap.  O/S upgrades and some "application" upgrades (e.g, DBMS) were included.  The one thing that was really very noticeable is that when there was a problem, either hardware or software, there was a _competent_, assigned to service the company, human being to personally contact and discuss the problem at hand.  That is serious business. 

Also, customers were generally not interested in more and more features.  What customers were interested in (and implicitly demanded) was _quality_ (e.g, few or bug free software and reliable hardware.)

That model works for the manufacturers (stable income stream and solid relationships) and also works for customers/clients/consumers but, it is not very likely to be adopted in a market that is feature/upgrade driven.  The net result of the current software model is low-quality, transient "software".

The current "software as a service" thing reminds me of McDonalds' drive-thru.  Calling the result genuinely useful software is like calling cheap processed burgers "nutrition" (JavaBurgers and PythonBurgers... will those be for here or to go ?)

Strangely and generally speaking, open source software seems closer to having an ideal development cycle than commercial software.
 


(FPC v3.0.4 and Lazarus 1.8.2) or (FPC v3.2.2 and Lazarus v3.2) on Windows 7 SP1 64bit.

Warfley

  • Hero Member
  • *****
  • Posts: 1761
Re: Are We Dead Yet?
« Reply #107 on: June 01, 2023, 12:59:43 pm »
The thing is: that takes a lot of design and planning. You even agree with that. While the current design philosophy seems to be: quick and dirty throwaway apps. Which either run in a browser or on your phone, or both. Yes, that's something else than business software, right? Or is it?
With buisness software I meant the typical buisness to buisness software, where small and medium sized developers are contracted by a few companies to build special purpose software. This is still a large part of software development.
And there the big part is functionality, the reason the customer buys this software is because there is no software that fully satisfies their needs out there, and they want something thats either custom build, or an existing software that is customized for them. Usually characterized by a small pool of customers who pay a lot of money to get the software they need.

On the other hand you have what I call "end user applications", which are readily packaged off the shelf software anyone can buy and/or download by anyone, often with lots of competition. These are your tax software, photo or video editing software, music players, etc. There you have a very little time window to convince the customer. And looking shiny is a good way to do this, and web tech is really good to easiely create very fancy graphics and animations (after all it's what the web is built for, presenting things in a pretty way).

But this does not say much about the internal project and development structure. Such projects can be staticall planned through (e.g. with complete design documents and requirements analysis and so on from the beginning), or could be more agile, with regular checkups, both with developers and customers, regular prototypes and user tests, etc. Depends heavily on the sector. For example when the customer base was the automotive and avionics industry (I have worked on one software which where they were customers, even though it was not the actual system control software, but I had some contact with people from that area), everything needed to be extremely rigorous planned beforehand, with a clear decision chain and responsibilities.
While in other areas, the customer might themselves not really know what they want and you need regular meetings and user tests to find out what is the best way to approach the solution. This is inherently not as plannable as the former.

Both kinds of software can fall in any of these categories (or even somewhere in between).

How many companies still produce their own in-house software? Less and less. Software should be a service and belongs in the Cloud, right? The big software providers, like Microsoft, wholeheartedly agree. They cannot produce decent software anymore, anyway, and subscriptions bring in money every month, no need to produce something better every year.
If I remember correctly, here in Germany 98% of software developers work for small and medium sized buisnesses. And it's an ever growing industry. Sure "cloud native" is one of the buzz words thats currently popular, and espeically when you go into the industry 4.0 stuff you will see alot of that, but I don't see it as that dominating. Infact there are a lot of companies around who do not want to have all their customer data in the cloud, and if so they usually use "private clouds" (i.e. on non shared servers).

The subscription model is not so popular with buisness software but very popular with end user software but also mostly from big companies like Microsoft or so, the reason is that this buisness model while being more predictable with respect to income is more risky for new services (e.g. Spotify has in it's 15 years it exists not made a single cent in profits, 2022 was the best year so far when they "just" lost a bit more than 220 million USD)
So you often see these subscription models with software that already has a large user base (adobe suite, office, etc.). Because what do you want to do, stop using Office? Good luck with that. Note that Office is still sold as a pay once software, because while the subscription model works well for end users, buisnesses don't keep up with that and want to "own" their copy.

But thats also a completely different story, many of these subscription softwares are Desktop software, Office and the Adobe Suite are still written in C++ (even though there is now are web versions, but they often are just a lite version and may even be just a webassembly port of the existing native code).
So you can have cloud native subscription based software, thats still a native desktop application, that just has some connections to the cloud (e.g. as storage, to check licenses, etc.).
So I don't see this as a contradiction

What runs on the server is mostly a collection of databases and micro-services. Written in the popular languages, as promoted by Big Tech. Mostly as a collection of anonymous functions that directly handle the URL routes and map to data in the databases. Here and there you find an obscure library with some business logic, often inherited, but it's mostly routing the data from the databases to the application that runs in the browser, on demand.

Together with the display logic in the browser, that's basically the stuff Lazarus does automatically for you when you make a desktop app. Rapid Application Development, as coined.
But only if you need databases and cloud and so on. There is still alot of software that needs to run offline (e.g. because it is in an encapsulated network and security parameter), or where there is simply no need to run it in the cloud. All this cloud stuff costs money for the provider, while when everything runs locally on the customer side, once the software is deplyed no running costs of operation.
You often see cloud for distributed systems, e.g. when you have control software for other machines, where then simply both can communicate over the cloud. The reason for this is quite simple, most of those cloud services (Azure, AWS) provide core modules like MQTT communication, database access, authorization management, etc. already making it really easy to use their cloud instead of writing your own networking architecture.

With end user software it's a bit different, because there you often have free software that makes money either by collecting data of the users, or by showing advertisements, or by locking functionality behind a paywall. While those are also sometimes mostly offline (e.g. StrongBox password manager for iOS is a freemium app with a subscription model, that fully works offline), it can be easier to enforce those things using a cloud (e.g. collecting user data is only possible when the user sends you the data).

But again, I don't see this as the majority of software, quite the contrary, because browsers get more powerful (JiT Javascript compilation, webassembly, optimizations, etc.), you now see a shift back to the end device. Sure it's still web based, but many software that previously required a backend, now runs fully frontend sided in the browser, simply because it is much cheaper to run the workload at the customer side, than to have to host it yourself.
And you can still combine this with the more predatory buisness models (like subscription, ad payed, data collection, etc.).

I see no reason why you shouldn't be able to have a cloud connected, user data selling, subscription and ad driven application fully written in Lazarus. Webtech is just often used because it is easy cross platform allowing for very nice graphics and animations (e.g. look at the wizard I posted above, it also draws it's own menu items, but canvas just looks really bad because it doesn't have sub pixel anti aliasing, I could probably build the same UI in HTML + JS in the same time and it would look much better)

Warfley

  • Hero Member
  • *****
  • Posts: 1761
Re: Are We Dead Yet?
« Reply #108 on: June 01, 2023, 01:14:05 pm »
I vividly remember companies I worked for paying several thousand dollars _a month_ for hardware and software support from the manufacturer.  Several thousands a month may sound like a lot of money but, it was actually cheap.  O/S upgrades and some "application" upgrades (e.g, DBMS) were included.  The one thing that was really very noticeable is that when there was a problem, either hardware or software, there was a _competent_, assigned to service the company, human being to personally contact and discuss the problem at hand.  That is serious business. 

There has also been a change to the regulatory landscape, for example Article 8 of EU Regulation 2019/770, requires your software to be build according to the state of the art, and regularly supplied with updates.
So what previously had to be bought in very expensive contracts, now is simply required by law. The question then is a bit on how you can ensure this. And one way this has changed is through the use of many external libraries and code. As I said in my previous post, if you build an application using Azure functions or AWS lambdas, you get a lot of functionality for "free" (well you pay alot for these cloud services, nothings free here), for example user and access management, with the respective security protections (which is what is explicetly required by the 2019/770) you get completely effortless. Web development is alos generally one of the worst offenders of the package/framework systems, where even the most simple functionality like checking if a number is odd, is a package you can simply download and use from npm with half a million downloads a week. The less you do yourself, the less you can do wrong.

Modern development is often more of glueing existing code (under the assumption that because someone welse wrote it it must be perfect) together than anything else. Because how can you ensure the state of the art? By simply using the same code everyone else is using

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10553
  • Debugger - SynEdit - and more
    • wiki
Re: Are We Dead Yet?
« Reply #109 on: June 01, 2023, 01:32:55 pm »
I just want to own the software and have it work until I decide I don’t want to use it anymore. Maybe I’m old fashioned...

Other than for software you written yourself, or had paid someone to write it for you...
You don't normally "own" software.

You hold a license to be allowed use this software.
And this license almost in every case has conditions. But many licenses don't have a fixed "end date" (Though OEM is usually bound to specific hardware, and since that may not work forever...)

But other than the used terminology: I kinda share the feeling.


Joanna from IRC

  • Hero Member
  • *****
  • Posts: 1215
Re: Are We Dead Yet?
« Reply #110 on: June 01, 2023, 02:41:11 pm »
I guess I was  thinking of back when software cds came in boxes  :D
✨ 🙋🏻‍♀️ More Pascal enthusiasts are needed on IRC .. https://libera.chat/guides/ IRC.LIBERA.CHAT  Ports [6667 plaintext ] or [6697 secure] channel #fpc  #pascal Please private Message me if you have any questions or need assistance. 💁🏻‍♀️

SymbolicFrank

  • Hero Member
  • *****
  • Posts: 1315
Re: Are We Dead Yet?
« Reply #111 on: June 01, 2023, 02:57:51 pm »
@Warfley: I agree, we're basically saying the same thing, in a different way.

But at most companies, you see that they want to go to the cloud. IT isn't their core business, it's not even an investment, just an expense. Give all your users a cloned desktop, on which they have no rights, with a company-wide set of default applications. All storage is regulated.

The thing is, they probably have MS Office and a few custom apps to manage their business logic and products, but other software is rarely available. So, what do you do if you need to do something that isn't included? You do it online. Which is where all the EU privacy laws are going to bite them. They upload confidential information, simply to be able to do silly stuff like extracting the logo from a pdf, or to convert a set of data to Excel.

And this is also where you go as a small or medium business, for the software to handle your productivity. You don't have the money to spend on a system administrator. If there is a problem, the son of one of your employees comes to see if he can fix it. Servers are a problem. Your data goes online, with OneDrive, probably. That's also their "backup". And if everyone can install their own software, ransomware and the like is a serious problem. Or an expensive license with penalty for Solidworks or Mathlab, because one of your employees installed an illegal version, which tried to update itself. No, going online is the best solution.

I worked for a company that makes medical equipment, to update their software. They also hired a new IT staff to build a new set of applications. The first thing they decided was, that it definitely was going to run in a browser. So, you have all this expensive measurement hardware, but to visualize the measurements, you're... going to stream them in real-time to an off-site server, from there to a browser, where they are processed for display? Yes, that was definitely the plan. Because, that's how you build modern software, right?

An interesting newish field is the big Arm micro-controllers, running Linux. They are everywhere. In China, I expect a serious amount of programmers to work on them. For that matter: I expect it to be popular in Germany as well. Somewhere in-between embedded and webapps, for the most part, as the UI often runs in a browser. Then again, the success of the Raspberry Pie was the inclusion of a real desktop, so YMMV.

To generalize it a bit more: Linux desktop apps that run on a toaster, either through X11 or a browser. So, you do again own the actual hardware that runs your software :)


Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 10553
  • Debugger - SynEdit - and more
    • wiki
Re: Are We Dead Yet?
« Reply #112 on: June 01, 2023, 02:58:15 pm »
I guess I was  thinking of back when software cds came in boxes  :D
Even, when you got a box, with one or more floppy disks (5" or 8"), there used to be a license.

If you were "owning" software at any point, you would always have had the right ("legal right" in many places) to do make copies and selling them (That is what the company does, because they own the software). And afaik you did not have that right.

You own the floppy disk.
You are in possession of the software on that disk.
Your rights of using (or otherwise doing something with) that software is covered by a license. (Or some law)


Legal note: I am not a lawyer. Above points are only representing my opinion.

Warfley

  • Hero Member
  • *****
  • Posts: 1761
Re: Are We Dead Yet?
« Reply #113 on: June 01, 2023, 03:28:19 pm »
And this is also where you go as a small or medium business, for the software to handle your productivity. You don't have the money to spend on a system administrator. If there is a problem, the son of one of your employees comes to see if he can fix it. Servers are a problem. Your data goes online, with OneDrive, probably. That's also their "backup". And if everyone can install their own software, ransomware and the like is a serious problem. Or an expensive license with penalty for Solidworks or Mathlab, because one of your employees installed an illegal version, which tried to update itself. No, going online is the best solution.

I see this "cloud native" a bit of a trend that will soonish end. Currently it is pushed heavily by companies like Microsoft, which makes so much money with Azure that it is ridiculus, and there are some advantages (basically you can use a lot of Microsofts Azure available services, and if something goes wrong you can blame Microsoft), but it also is somewhat inverting already, you can now buy private azure clouds which run in a private network you can connect via VPN. Even more you can just download Azure software to run on locally or on your own servers.
Also with regards to Microservices, Amazon has recently moved away from using Microservices for Prime Video and saved around 90% of resource consumption through it.
Simultaniously the European Data Privacy offices are gettin on it, e.g. the German comittee on privacy protection officers have come to the conclusion that Microsoft 365 (Office + OneDrive) are not conforming to privacy regulations (this is not lawfully binding, as there was no court decision yet).

So with these trends I feel like this trend that everything needs to be in the cloud will end soon. The cloud won't go away any time soon, for some use cases it is really useful, but I don't think that we will see this everything in the cloud for long.

PascalDragon

  • Hero Member
  • *****
  • Posts: 5755
  • Compiler Developer
Re: Are We Dead Yet?
« Reply #114 on: June 01, 2023, 10:48:46 pm »
Windows nowadays has an X Windows client build in. Write your Lazarus app, drop it on a server, make a webpage to start it, create an X11 tunnel from the server to the client, and simply run it from the server. That's how I develop complex web services as well, much easier than cross-compiling.

Windows does not have a X11 server build in.

440bx

  • Hero Member
  • *****
  • Posts: 4735
Re: Are We Dead Yet?
« Reply #115 on: June 02, 2023, 02:38:45 am »
<snip> gives the wrong sorts of  people too much control. I’m much happier with the idea of having backups of all data in my possession.
which is exactly why those "sorts of people" make it sound appealing.

What is genuinely amazing is the extremely high willingness from an equally high percentage of people to thoughtlessly compromise their privacy and control over their life (a good percentage is apparently not even aware of what they are effectively doing.)

Seems like the easiest and most effective thing to exploit is people's cravings for attention and "belonging".
(FPC v3.0.4 and Lazarus 1.8.2) or (FPC v3.2.2 and Lazarus v3.2) on Windows 7 SP1 64bit.

dbannon

  • Hero Member
  • *****
  • Posts: 3156
    • tomboy-ng, a rewrite of the classic Tomboy
Re: Are We Dead Yet?
« Reply #116 on: June 02, 2023, 09:54:25 am »
Windows nowadays has an X Windows client build in. Write your Lazarus app, drop it on a server, make a webpage to start it, create an X11 tunnel from the server to the client, and simply run it from the server. That's how I develop complex web services as well, much easier than cross-compiling.

Windows does not have a X11 server build in.

While delightfully ignorant of Windows, I ask you to consider the poor suffering Linux users being forced to use Wayland. We cannot (an exaggeration) use X11 because -
  • Its too complicated to maintain.
  • Its insecure.
  • Its too slow.

None of those issues seem to worry the promoters of cloud computing ....

Davo
 
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

Warfley

  • Hero Member
  • *****
  • Posts: 1761
Re: Are We Dead Yet?
« Reply #117 on: June 02, 2023, 02:32:43 pm »
Somehow employees of government and big businesses are bestowed an automatic totally trustworthy status by default.
It depends heavily on the country and culture. For example here in Germany people are generally more privacy aware than for example in the northern countries (and the further east you go here in Germany the more distrustful they get), but funnily enough here in Germany trust in cooperation is a bit higher than in the Government, while in the nordic countries it's the other way around. The US is probably the most extreme country, where trust in companies is much higher than generally in Europe, and also much higher than in the government. E.g. you can see this where the digital drivers license in Georgia and Arizona is built and given out by Apple and Google, rather than by the state (can't wait to see the reports about voting places that are apple users only).

The more problematic thing is actually with "free" products. Everyone knows Facebook, Google and co only profit from your data (directly or indirectly through ads), and most people think it's bad, yet still everyone uses them, because it's easy and does not cost. People rather pay the ambigous and non tracable cost of their privacy than the real cost of real money.
And there is the question on what you want to do about this. When people know it's bad and believe it's bad, but are doing it anyway, theres nothing you can do.

  • Its too complicated to maintain.
  • Its insecure.
  • Its too slow.

None of those issues seem to worry the promoters of cloud computing ....
I don't know where you get this impression from, these are exactly the selling points of cloud computing. It's easy because all the complicated stuff is made by the cloud providers. It's secure because instead of having to do all of the security architecture yourself, you can rely on a proven and developed one of the cloud provider, and also providing all the certifications for the infrastructure such as ISO/IEC 22237 and so on. And it's faster because all the complex computations are done by the cloud with near infinite computation power and you only need lightweight clients on the comparatively low powered machines.

So it's not like cloud promoters don't worry about these things, they actively sell those things.

dbannon

  • Hero Member
  • *****
  • Posts: 3156
    • tomboy-ng, a rewrite of the classic Tomboy
Re: Are We Dead Yet?
« Reply #118 on: June 03, 2023, 02:51:54 am »
Warfley, not disputing your statement that it works, but it does not work because of the architecture, its despite the architecture !

I was involved in Grid Computing back before the term "cloud" was used. It was about scientific computing, big, non-interactive jobs with 100s of dedicated CPUs. We ran the AU X509 certificate authority affiliated with similar orgs in, maybe 50 other countries. I can assure you that while the "complicated stuff" is taken care of by the providers, its still complicated. Security today is defined by commercial necessity, "make it usable" rather than the obsessive X509 processes we used. Performance in cloud apps may be good when its compute intensive (like my scientific computing) but for interactive use X11 on a local machine is massively faster than a remote cloud system.

My point was, and still is, "how can we abandon X11 (in favor of Wayland) for those issues when cloud computing, with the same, greatly exaggerated issues, is the next (or current) big thing ?"

Davo
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

Warfley

  • Hero Member
  • *****
  • Posts: 1761
Re: Are We Dead Yet?
« Reply #119 on: June 03, 2023, 11:48:29 am »
My point was, and still is, "how can we abandon X11 (in favor of Wayland) for those issues when cloud computing, with the same, greatly exaggerated issues, is the next (or current) big thing ?"
But no one is seriously promoting using X11 based cloud computing. This comment from SymbolicFrank is probably the first time I've heard something like that as a non joke.

The closest thing I can think of may be Blazor, where you can write your code in C# and decide on how much you like to perform on the frontend and the backend. It has the Server mode, in which all computations are happening on the server and Blazor is, like an X11 server, just a dumb HTML frontend (this also has a no JavaScript version where all sites are static and any action requies a full page reload). But if I remember the release presentation correctly, this is specifically build for the case where the server is running in the same local network (I think the example used was a car shop, where you would have the Blazor server running in the basment, and just have an iPad or so for viewing in the same network), exactly because of latency and security reasons.
The more common alternatives are Blazor WebAssembly, where all the code is running in the frontend, and just using normal requests (or websockets) to receive data from a normal backend. Then there is Blazor Hybrid, which is like BlazorServer but the "server" is running on the same device as the Browser (think of it as an Browser based Widgetset in the Pascal world).

And even then, the Blazor SignalIR protocol was built specifically to be used with modern requirements for security and to reduce network delay, while X11 wasn't.

So I don't think we need to be afraid of cloud providers like Azure or AWS starting to make big advertisements for using X11 (or similar) cloud apps. I have never seen any push to have all the events being passed between cloud and client to have all the UI code running in the cloud. Infact, it is usally advertised to strictly seperate UI and buisness logic, with your logic running in the cloud, and all of the UI stuff running in the frontend.

If there is anything that is holding Wayland back, I'd argue it's most probably the case that it still, after 15 years, does not fully support the proprietary Nvidia drivers, which means when you want to be able to Play high demanding games, or heck, use a new Nvidida graphics card at all. When I bought my 2060, it took over 2 years until I could even boot without the proprietary drivers (because I have a Server CPU I don't have a fallback graphics chip on the CPU). I would like to use Wayland, it has a great advantage that you can scale on a Monitor by Monitor basis (and with 1x4K and 1x1080p monitor this is kindof a must have), but it simply does not work for me, but the last time I checked it still did not well with the proprietary drivers, and I couldn't get the full performance with the kernel drivers.

 

TinyPortal © 2005-2018