Poster | Thread |
billt
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 0:43:32
| | [ #21 ] |
|
|
|
Elite Member |
Joined: 24-Oct-2003 Posts: 3205
From: Maryland, USA | | |
|
| @simplex
Quote:
C is for most purposes the worst choice of language to use. It's terribly unsafe and outdated; |
Reasonably true. But, it's also what OSes have been programmed in for ever. C was invented for the purpose of writing Unix... Our driver APIs are C. Our libraries are largely C. Much f makin gnew libraries etc. is to be in C. It's what our OS APIs are. So very hard to avoid C. I'd actually like to learn how to update to C++ in AmigaOS land, and go beyond the small but of C++ that I was forced into for an embedded systems project using Arduino, which is an odd combination of C++ and "Almost C".
I'd love a reason to learn Rust. It sounds like the one modern language that one can use for embedded programming, hitting the metal, and thus writing drivers in. (I'm also looking for a reason to learn Pyhon, and have started toying with Java small amount)
Now... I understand that Rust exists for PowerPC. Who is going to Amiga-ify it?_________________ All glory to the Hypnotoad! |
|
Status: Offline |
|
|
Hans
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 2:42:52
| | [ #22 ] |
|
|
|
Elite Member |
Joined: 27-Dec-2003 Posts: 5067
From: New Zealand | | |
|
| @all
Looking through the responses so far, the most common factor by far is lack of time. Difficulty getting started (setting up the dev environment, learning the APIs) seems to be second, although that's pretty much due to a lack of time too. The other items are all over the place (e.g., people's programming language preferences).
While we can't do anything about people's limited time, there are things that could be done to allow people to do more with that limited time. That means things like: - Easy to set up dev. environments - Better dev. tools (e.g., I'd love to have an IDE with a fully working debugger) - Libraries/middleware (such as?) - Tutorials (what tutorials are needed most?) - More documentation (which parts of the system are missing docs?)
Anything that allows people to get results with less time & effort would help.
In theory getting started on AmigaOS 4 should be relatively easy because the SDK comes with all the basics: compiler, includes, examples, docs. What are people's experiences with getting set up?
Hans
_________________ http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more. Home of the RadeonHD driver for Amiga OS 4.x project. https://keasigmadelta.com/ - More of my work. |
|
Status: Offline |
|
|
Hans
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 2:49:37
| | [ #23 ] |
|
|
|
Elite Member |
Joined: 27-Dec-2003 Posts: 5067
From: New Zealand | | |
|
| @Karlos
Quote:
Karlos wrote: @Hans
A thread safe compiler and toolchain would be nice. That broke all my old 3.x code that made use of C++ and AmigaOS Tasks/Processes. In 3.x with StormGCC linking against threadsafe.lib ensured that this was safe and predictable. In 4.x/GCC none of this worked. |
There might be some progress on that front. There's an experimental GCC 8 with support for C++11 threads. That can only work if there's a thread-safe C++ stdlib.
Quote:
I also rely on cross compiling but it seems that C++ code generated by the cross compiler just doesn't link. C code is fine, however. I should mention that this is with a cross compiler that is likely out of date by now. |
I have C++ code building using a cross-compiler built by following these instructions. Wish there was an easier way to set it up, but at least it works.
@billt Quote:
billt wrote: I was under the impression that one could ask for the modern graphic driver API/dev kit some time back, but I never got a response...
|
Sorry to hear that. It took a while for me to get access. You could always try again. NOTE: The API is still the Picasso96 one, although it's been extended a bit with compositing, DDC, etc.
Hans
_________________ http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more. Home of the RadeonHD driver for Amiga OS 4.x project. https://keasigmadelta.com/ - More of my work. |
|
Status: Offline |
|
|
ferrels
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 3:23:20
| | [ #24 ] |
|
|
|
Cult Member |
Joined: 20-Oct-2005 Posts: 922
From: Arizona | | |
|
| @Hans
All this talk of tools and what can be done to make OS4 development easier for coders is useless without a customer base willing to pay for apps and to provide an incentive for programmers to take up a coding challenge in the first place. Altruism doesn't drive businesses nor does it drive application development. You of all people should know this better than most of us here, unless of course you're willing to continue your graphics driver development efforts free of charge.
In times past there have been attempts to drive application development via money (Timberwolf, etc..) but these attempts were so abused/mismanaged that almost no one left in the community will consider donating further. As a developer who has bills to pay, there's no way that I will drop what I'm doing in the PC world to write OS4 apps that have no promise of a pay off. That would be financial suicide.
Even if someone comes up with a "Visual Studio" for OS4, no developer is going to drop what they're doing and develop an office suite or decent web browser for this platform, and those are the things which OS4 most sorely lacks. The return on the developer's investment just wouldn't make it worth his while, so OS4 will continue to hobble along as it has since its inception back in 2003. There has to be a consumer base willing to pay the dev costs, plain and simple. The Amiga's ship sailed long ago and nothing short of a total collapse of Intel, Apple AND Microsoft will change the current situation. Amiga's have been relegated to hobbyist status along with several other operating systems that showed promise in the 1990's and that's where they'll stay.
|
|
Status: Offline |
|
|
kamelito
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 6:54:40
| | [ #25 ] |
|
|
|
Cult Member |
Joined: 26-Jul-2004 Posts: 815
From: Unknown | | |
|
| @Hans
in comparison, the Morphos team provided Flow Studio, MUi and Objective C with some frameworks to reduce development time for applications. A bit like NextStep/OSX. |
|
Status: Offline |
|
|
broadblues
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 9:11:19
| | [ #26 ] |
|
|
|
Amiga Developer Team |
Joined: 20-Jul-2004 Posts: 4446
From: Portsmouth England | | |
|
| @simplex
Quote:
By "safer", I mean that in most cases you can avoid pretty simple stack and pointer errors that are considered "features" of C, such as a function that returns a pointer but the programmer forgets to include a return statement. A hard-to-debug BOOM occurs when you try to assign the result.
|
-Wall -Werror will get that instantly. Never compile anything without those two options set.
[edit] with =>without!Last edited by broadblues on 28-Jun-2018 at 09:42 AM.
_________________ BroadBlues On Blues BroadBlues On Amiga Walker Broad |
|
Status: Offline |
|
|
simplex
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 9:20:21
| | [ #27 ] |
|
|
|
Cult Member |
Joined: 5-Oct-2003 Posts: 896
From: Hattiesburg, MS | | |
|
| @billt
Quote:
Reasonably true. But, it's also what OSes have been programmed in for ever. C was invented for the purpose of writing Unix... Our driver APIs are C. Our libraries are largely C. Much f makin gnew libraries etc. is to be in C. It's what our OS APIs are. So very hard to avoid C. |
One cannot avoid C entirely without rewriting just about every OS in the world; I agree. However, most modern languages I know of have a foreign function interface that interacts natively with C. In the Nim community, for instance, they've repackaged more C libraries than you can shake a stick at. The result is equivalent execution time and much, much faster compilation time (because Nim uses true modules, rather than including & compiling header files every blasted time they're needed).
It's a bit like saying you can't program in Modula-2 on Amiga because Amiga's OS and API's are in C. That argument doesn't hold because most every Modula-2 compiler I've seen already provides an interface to the API's.
As such, there is no sensible reason to make C the ordinary programming interface._________________ I've decided to follow an awful lot of people I respect and leave AmigaWorld. If for some reason you want to talk to me, it shouldn't take much effort to find me. |
|
Status: Offline |
|
|
simplex
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 9:22:38
| | [ #28 ] |
|
|
|
Cult Member |
Joined: 5-Oct-2003 Posts: 896
From: Hattiesburg, MS | | |
|
| @broadblues
Quote:
-Wall -Werror will get that instantly. Never compile anything with those two options set. |
I guess you mean "without" those two options set. Either way, but a lot of software I have to link to either doesn't use those options or ignores all the warnings they produce._________________ I've decided to follow an awful lot of people I respect and leave AmigaWorld. If for some reason you want to talk to me, it shouldn't take much effort to find me. |
|
Status: Offline |
|
|
broadblues
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 9:47:08
| | [ #29 ] |
|
|
|
Amiga Developer Team |
Joined: 20-Jul-2004 Posts: 4446
From: Portsmouth England | | |
|
| @simplex
Quote:
Either way, but a lot of software I have to link to either doesn't use those options or ignores all the warnings they produce.
|
1. Add the options to the make file. 2. Don't use libraries that spew huge amounts of warnings they are likely not stable. 3. Specific warnings can be switched off if needed deprecated functions being the most common for porting older stuff (but I would advise creating a range of compataibilty function wrappers instead). 4. Fixing the warnings (inteligently) is part of the porting process, it's not an avoidable step.
Last edited by broadblues on 28-Jun-2018 at 09:48 AM.
_________________ BroadBlues On Blues BroadBlues On Amiga Walker Broad |
|
Status: Offline |
|
|
Hans
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 11:03:38
| | [ #30 ] |
|
|
|
Elite Member |
Joined: 27-Dec-2003 Posts: 5067
From: New Zealand | | |
|
| @ferrels
Quote:
All this talk of tools and what can be done to make OS4 development easier for coders is useless without a customer base willing to pay for apps and to provide an incentive for programmers to take up a coding challenge in the first place... |
Respectfully, I disagree. It's still beneficial for those who are interested in OS4 as a hobby (and yes, they exist). Plus, hobbies get more fun the more people are involved.
It's worth it even if we only get a few more involved.
Actually, better dev tools would be worth it for existing developers like me. I also have limited time, so I'd love to have tools that allow me to deliver more in less time.
Hans
_________________ http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more. Home of the RadeonHD driver for Amiga OS 4.x project. https://keasigmadelta.com/ - More of my work. |
|
Status: Offline |
|
|
simplex
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 12:33:38
| | [ #31 ] |
|
|
|
Cult Member |
Joined: 5-Oct-2003 Posts: 896
From: Hattiesburg, MS | | |
|
| @broadblues
Quote:
Add the options to the make file. |
"Plural" make files. Often hard to find and modify. You may have to learn the intricacies of automake and CMake or whatever esoteric build system the author slapped together, such as a bunch of bash scripts.
Moreover, in some cases it's one warning in a library with several hundred files. You start to build, walk away, come back, everything compiled, and the warning doesn't show up on the terminal. The error doesn't manifest in -O0, only in -O1 or higher. I ended up spending hours on that stupid bug where the author left out a return statement, and I considered myself lucky.
Quote:
Don't use libraries that spew huge amounts of warnings they are likely not stable. |
It would be nice to have this option, but in many situations there's often only one place to go for certain algorithms. Telling me not to use libraries that issue thousands of warnings during compilation is basically telling me not to get work done, or at least, not within a reasonable timeframe. Sometimes I have no choice: if I just have thousands of warnings, great.
Look, I literally (according to the literal meaning of literally, no less) consider myself lucky when I don't have to use a library that links to another library that a professional (!) programmer (!!) at HP (!!!) wrote in the mid- to late 90s but no longer works because the C++ standards committee realized their language was crap and finally improved when they standardized the language in 1998, breaking a bunch of stuff that was perfectly legal up to then, but the guy who wrote the library I need was using a version of g++ (or whatever) that wasn't up-to-date at the time. I am speaking from actual experience here. I just gave up on that particular algorithm; it helped that in my use case the problems were usually small enough that I didn't need the otherwise significant speed improvement.
Quote:
Fixing the warnings (inteligently) is part of the porting process, it's not an avoidable step. |
If I had to fix each of thousands of warnings, which I often do, I'd never get actual work done. Sometimes I have no idea how to fix the warnings and errors, because they're buried deep in the code; fixing one thing breaks another (really!); and the original author is no longer responsive. Even the Gnu project pumps out code that vomits warnings to the screen during compilation.
My point has been that C's design encourages bad programming, and C programmers are notorious for writing illegible and dangerous code. Stuff like
int i; scanf("%d", i);
is baked into the design. Saying, "Well, you ought to fix stuff that's shoddily written" doesn't really change that point, and basically means I will never get work done.
This is sort of like why people use Mac and Windows instead of Amiga. Sure, I could spend days, weeks, months, even years rewriting a program from scratch. Or I could, you know, get actual work done.Last edited by simplex on 28-Jun-2018 at 12:46 PM. Last edited by simplex on 28-Jun-2018 at 12:38 PM.
_________________ I've decided to follow an awful lot of people I respect and leave AmigaWorld. If for some reason you want to talk to me, it shouldn't take much effort to find me. |
|
Status: Offline |
|
|
Karlos
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 13:26:36
| | [ #32 ] |
|
|
|
Elite Member |
Joined: 24-Aug-2003 Posts: 4402
From: As-sassin-aaate! As-sassin-aaate! Ooh! We forgot the ammunition! | | |
|
| @Hans
I think the lack of free time is simply a product of the fact we're all hobbyists now with much bigger responsibilities vying for our time.
It's good to hear there's an updated cross compiler. I'll try to look into that as soon as I can. I can't realistically compile on mt actual machine given I'm currently rocking an A1200 ;) _________________ Doing stupid things for fun... |
|
Status: Offline |
|
|
bison
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 15:55:45
| | [ #33 ] |
|
|
|
Elite Member |
Joined: 18-Dec-2007 Posts: 2112
From: N-Space | | |
|
| @Hans
1. Hardware. I don't own an NG Amiga. The X5000 is too expensive. I'm waiting for Tabor, although I can feel my enthusiasm waning as the months go by...
2. Time. I'm currently writing (yet another) X11 window manager, and that's taking all my time.
_________________ "Unix is supposed to fix that." -- Jay Miner |
|
Status: Offline |
|
|
ferrels
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 16:01:06
| | [ #34 ] |
|
|
|
Cult Member |
Joined: 20-Oct-2005 Posts: 922
From: Arizona | | |
|
| @Hans
Quote:
Respectfully, I disagree. It's still beneficial for those who are interested in OS4 as a hobby (and yes, they exist). Plus, hobbies get more fun the more people are involved. |
Well, I do know that when the only people programming for a platform are weekend amateurs, then all you can expect, at best, are amateur quality apps. You get what you pay for.
And existing developers like you get paid for their work, amateur hobbyists don't, so you only serve to prove my point.Last edited by ferrels on 28-Jun-2018 at 04:03 PM.
|
|
Status: Offline |
|
|
bison
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 16:04:18
| | [ #35 ] |
|
|
|
Elite Member |
Joined: 18-Dec-2007 Posts: 2112
From: N-Space | | |
|
| @simplex
Quote:
C is for most purposes the worst choice of language to use. |
I am terribly fond of C, especially C11, and especially in conjunction with a modern libc. The inclusion of asprintf alone narrows the chasm between Perl and C by about 30-percent. And I find that tools such as Valgrind, LSan, MSan, etc. mitigate the safety problems.
Of course C on Amiga probably doesn't have any of these things, so I might find that situation less to my liking.
Last edited by bison on 28-Jun-2018 at 04:26 PM.
_________________ "Unix is supposed to fix that." -- Jay Miner |
|
Status: Offline |
|
|
bison
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 16:12:27
| | [ #36 ] |
|
|
|
Elite Member |
Joined: 18-Dec-2007 Posts: 2112
From: N-Space | | |
|
| @broadblues
Quote:
-Wall -Werror will get that instantly. Never compile anything without those two options set. |
Good advice. I'm even more cautious than that; I use -Wall -Wextra -Werror most of the time, which alerts me to things like signed-to-unsigned integer comparisons.
Addendum: if -Wsign-compare were part of -Wall in C as it is in C++ then I probably wouldn't bother with -Wextra.
Last edited by bison on 28-Jun-2018 at 04:24 PM.
_________________ "Unix is supposed to fix that." -- Jay Miner |
|
Status: Offline |
|
|
Jolo
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 19:19:22
| | [ #37 ] |
|
|
|
Member |
Joined: 7-Oct-2006 Posts: 30
From: Unknown | | |
|
| My answer would be: A simplified graphical user interface with a simple to use build program.
Look at Windows or Android; they have no font sensitive user interfaces and that makes especially the creation of GUIs very easy for inexperienced GUI programmers. Using ReAction (ClassAct) or MUI/Zune in contrast, means to fiddle around with lots of tag-lists, what in turn needs lots of code to be written and even more, a huge bunch of knowledge.
I am an old school Amiga coder and I have no problems creating software for any Amiga alike platform, although I am spending more time, as any other too, creating a GUI than writing the essential stuff.
In my humble opinion is just the complexity of GUIs of any Amiga(oid) system a huge handicap for all programmers, no matter if experienced or inexperienced.
If I wouldn't have a 30 years background in Amiga programming, I would throw in the towel as soon as the GUI exceeds two objects.
How it should be done (in my humble opinion) can be seen in Android Studio - one doesn't need to know which attributes a GUI object supports, it works out of the box, only if support for special stuff is required, one chooses them via mouse and does not enter code (unless one really wants to).
The creation of Windows' GUIs in contrast, can be almost as complex as using ReAction (ClassAct) or MUI/Zune (when using the WinAPI directly). It all depends on the chosen runtime library - and Windows offers several (MFC, .NET, etc.).
I cannot shake off the feeling that GUIs are in the foreground of all Amiga(oid) systems, rather than the program's functionality.
Someone mentioned Flow Studio, MUI and ObjC: Even with those tools at hand the creation of GUIs is terrible slow and even worse, almost practically unachievable for a newbie.
And last; I can only speak for myself, but programming languages don't play any role for me, I am using the one that I think fits best for a purpose, even it means I need to learn a new one.
|
|
Status: Offline |
|
|
bennymee
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 20:06:10
| | [ #38 ] |
|
|
|
Cult Member |
Joined: 19-Aug-2003 Posts: 697
From: Netherlands | | |
|
| @ferrels
If there is 1 guy who is developing Radeon drivers for our beloved Amiga’s everything is possible;) |
|
Status: Offline |
|
|
gonegahgah
| |
Re: What's in the way of you writing/porting software? Posted on 28-Jun-2018 23:28:35
| | [ #39 ] |
|
|
|
Regular Member |
Joined: 5-Dec-2008 Posts: 150
From: Australia | | |
|
| @Hans
My obstacles would be mainly time and loss of some of my old files (when my brother's A4000 finally died in 199?) and having to sort through what I have.
Now I've moved onto other big (but foreign) ideas but can't find time for them either this year.
There are so many things that appal me about today's computer systems so that is sad for me! |
|
Status: Offline |
|
|
marko
| |
Re: What's in the way of you writing/porting software? Posted on 29-Jun-2018 0:33:03
| | [ #40 ] |
|
|
|
Super Member |
Joined: 17-Dec-2007 Posts: 1816
From: Gothenburg, THE front side of Sweden ;), (via Finland), EU | | |
|
| @Hans
Mainly two things, time and money. The time I put into my day job, pays my bills.
_________________ AmigaOS 4.1 FEu2 on Sam440ep-flex 800MHz 1GB RAM C128, A500+, A1200, A1200/40, AmigaForever 2008+09+16, 5 x86/x64 boxes Still waiting (or dreaming) for the Amiga revolution... m4rko.com/AMIGA |
|
Status: Offline |
|
|