News for hackers. Stuff that matters.
Re:What's New in Ada 2022 by ithkuil on Monday June 20, 2022 @03:59AM (#31807491)
I'd really love to use ada for some real world application. Is there a gRPC implementation?
Re:What's New in Ada 2022 by thesuperbigfrog on Monday June 20, 2022 @08:59AM (#31809806)
Ada has a distributed systems annex:

http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-E.html

(An annex in Ada is an optional portion of the language designed for a particular use case that a given Ada implementation may or may not implement.)

AdaCore tutorials about using the distributed systems annex:

https://www.adacore.com/gems/gem-84

https://www.adacore.com/gems/gem-85the-distributed-systems-a...

https://www.adacore.com/gems/gem-87-the-distributed-systems-...

https://www.adacore.com/gems/gem-90-the-distributed-systems-...

It is not exactly gRPC because it was designed before gRPC was created, but the purpose is mostly the same.

PolyORB might also be interesting:

https://github.com/AdaCore/PolyORB

Re:What's New in Ada 2022 by KronisLV on Monday June 20, 2022 @04:50AM (#31807884)
I feel like most of the older languages are a bit difficult to use in a modern setting.

For example, consider how Pascal/Lazarus (a different language, sure, but in similar circumstances to Ada) support MySQL 5.7 at the latest (TMySQL57Connection) and might have certain challenges when you attempt to use them for web development or anything of the sort (REST, SOAP, gRPC, connecting to RabbitMQ etc.).

A brief search doesn't turn up any gRPC support for Ada, it feels like using something like Go for components that connect over the network and Ada for actual data processing with interop inbetween might actually be a better setup. It might also just be an uphill battle outside of niche domains where Ada (or even Pascal/Delphi) are established.

Re:What's New in Ada 2022 by foerbert on Monday June 20, 2022 @05:10AM (#31808000)
It depends a lot on what exactly you need or want to use. Sometimes you find something great, or nothing, or something in-between. One nice thing with Ada is how easily it binds to C, and that just got some improvements. Not as easy and nice as somebody else doing it for you, but still. It's something I actually consider, which is more than I can say for any other language.

FWIW, in my brief dalliance with Pascal, I got the impression it's a good bit more, uh, fossilized than Ada. I didn't try too hard to find a pulse there at the time, but I don't think I tried much harder with Ada. Yet here I am, shamelessly shilling.

Re:What's New in Ada 2022 by KronisLV on Monday June 20, 2022 @05:18AM (#31808057)
> One nice thing with Ada is how easily it binds to C, and that just got some improvements.

This is an excellent point and will probably keep lots of similar languages out there viable for a bit longer.

For example, I wouldn't start a serious project in Prolog either, but if there's a really good use case for it and there's a way to integrate it with other languages/runtimes, be it C/C++ or anything else, then I might consider it.

> FWIW, in my brief dalliance with Pascal, I got the impression it's a good bit more, uh, fossilized than Ada.

It depends. It's still a good option for various native GUI software and the occasional bit of number crunching/utilities, especially when used with Lazarus: https://www.lazarus-ide.org/

That said, it's definitely showing its age and the whole Delphi/Pascal divide isn't helping much either. Generally .NET and Go do most of the things I would have considered it for 5-10 years ago, though, maybe only the GUI part isn't entirely solved just yet.

I'm not sure why, but most of the newer runtimes/languages don't really have strong built in GUI options, perhaps because developing those and supporting multiple platforms takes a lot of time. I can't stop wishing for something that's as stable as Java Swing or even OpenJFX for something like .NET: Avalonia UI seems like a third party project and using something like Qt/GTK binds isn't always easy to pull off.

Just give me a simple and easy to use language that has built in packages for doing most of the common stuff (working with different data formats, network interaction etc.) and has a built in cross platform GUI library, with an IDE that lets you use a designer with drag & drop functionality for laying stuff out, before you connect all of the components in code. Somehow the wisdom of RAD (rapid application development) seems to have waned in the last decade.

Re:What's New in Ada 2022 by imaltont on Monday June 20, 2022 @06:18AM (#31808497)
> Just give me a simple and easy to use language that has built in packages for doing most of the common stuff (working with different data formats, network interaction etc.) and has a built in cross platform GUI library, with an IDE that lets you use a designer with drag & drop functionality for laying stuff out, before you connect all of the components in code. Somehow the wisdom of RAD (rapid application development) seems to have waned in the last decade.

Racket does all of these afaik outside of the built in WYSIWYG editor for GUIs. There probably are 3rd party designers around though.

Re:What's New in Ada 2022 by foerbert on Monday June 20, 2022 @06:06AM (#31808411)
> It's still a good option for various native GUI software and the occasional bit of number crunching/utilities, especially when used with Lazarus

Yeah, that was definitely quite the bright spot. At the time GUIs weren't really what I was interested in, so ultimately I moved on. But for a long while since I'd fire up Lazarus again whenever I started thinking about native GUIs.

Never did much with it though, as I was never inclined to do everything in Pascal and it didn't seem worth the trouble to make it work with whatever I was wanting to use for the rest of it.

Re:What's New in Ada 2022 by chadcmulligan on Monday June 20, 2022 @05:40AM (#31808214)
> (REST, SOAP, gRPC, connecting to RabbitMQ etc.)

This hasn't been my experience (for Delphi anyway). There's a pantheon of various components for Internet protocols available that work well, I have used REST and SOAP amongst others. If there's a library with a c or C++ interface then you can connect it to Delphi. Lazarus I have less experience with, but likewise can interface to anything.

Re:What's New in Ada 2022 by KronisLV on Monday June 20, 2022 @06:15AM (#31808481)
> There's a pantheon of various components for Internet protocols available that work well, I have used REST and SOAP amongst others.

Clients, sure. But something like the Spring framework for Java or ASP.NET for .NET, or even Ruby on Rails or Django for Python? Not quite.

Closest that I could find was Brook: https://wiki.freepascal.org/Brook_for_Free_Pascal but it appears that it isn't in very active development at all (last release was 3 years ago: https://github.com/risoflora/brookfreepascal)

There is a nice page about web development on the Wiki: https://wiki.freepascal.org/Portal:Web_Development

But for the most part, even there you won't find the "one true way" to develop new enterprise apps or other larger projects.

There is fcl-web (https://wiki.lazarus.freepascal.org/fcl-web) and fpWeb (https://wiki.lazarus.freepascal.org/fpWeb_Tutorial) but both lean more towards writing your own web server and handling the lower level HTTP interaction, vs what something like Django would let you do, mostly thinking of what your app should do, not so much about how it will look on a per-request basis: https://docs.djangoproject.com/en/4.0/intro/tutorial01/

Re:What's New in Ada 2022 by chadcmulligan on Monday June 20, 2022 @07:43AM (#31809123)
There's spring4d, though I haven't used it, though have used parts of it. I've developed a number of servers in delphi for windows, they're as performant as C# services (which I've also developed, there's very little difference). I've developed TCP/IP server, SOAP server, and REST servers talking to a few databases and remote servers. There is no limit to what you can develop in it, since you have access to the Windows API's just like any C application.

> But something like the Spring framework for Java or ASP.NET for .NET, or even Ruby on Rails or Django for Python

You've outlined a number of different things there and you could make your own with delphi, since again its just like C as to what it can do. You could, if you wanted, make a Django for delphi, though it's not something I'd do. Though your initial statement was Delphi couldn't do a lot of modern services either server or client. This isn't true. If it's all these other things, well, thats a matter of opinion, but there's no technical limitation with Delphi as far as protocols go.

Edit: There's this to which is interesting - a drag and drop web development set of components for SPA's https://www.tmssoftware.com/site/tmswebcore.asp which doesn't exist in other environments afaik. Though not sure I'd use it, I know of people who have and it works fine.

Re:What's New in Ada 2022 by jannie123 on Tuesday June 21, 2022 @05:42PM (#31829432)
join a defense contractor