English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 26 June 2010, 04:56   #1
methodman
Registered User
 
Join Date: May 2010
Location: Redding USA
Posts: 109
Is programming now much different than during the Amiga Era

It seems that even programming during the Amiga years was challenging. Today the programming doesn't seem to be that different.Have I not looked at good programming books. Are agolrithms being used now in programming that different. Are the new languages drastically different than the Amiga Languages for example E vs Python or Visual Studio vs CanDo or Amos. or Mathematica Isn't it mostly that just more libraries exist. or are there fundamnetally different concepts attached?

With the exception of photoshop type software and Reakto r2. 0 construction could that have ever been implemented on an Amiga. It doesn't seem programming has evolved that much.:
methodman is offline  
Old 26 June 2010, 05:40   #2
Hewitson
Registered User
Hewitson's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Age: 36
Posts: 3,328
Quote:
Originally Posted by methodman
It seems that even programming during the Amiga years was challenging.
Quote:
Originally Posted by methodman
It doesn't seem programming has evolved that much
Programming was far more difficult during the Amiga era due to the fact that it is necessary to use assembly to squeeze every last bit of speed out of the system.

These routines often needed to be optimised for maximum speed by hand, people would work for hours just to save a few cycles..

These days computers are so powerful its not funny. You can write in a high level language without worrying about speed or performance.

I'm afraid you couldn't be more wrong. Programming has evolved a great deal.
Hewitson is offline  
Old 26 June 2010, 09:19   #3
gilgamesh
Linux snob

gilgamesh's Avatar
 
Join Date: Sep 2008
Location: Monkey Island
Posts: 997
Programming in the 80ies was mostly procedural (C, Modula). The next big thing was object orientedness (C++, Java) in the 90ies. These days you see a big trend towards functional programming (ML, Scala, most script languages).

Algorithms haven't changed that much. Don Knuth's "Art of Programming" is still a good source of information. On the other hand, more specialized areas like computer graphics have seen some fundamental progress.

I agree that programming has evovlved.
gilgamesh is offline  
Old 26 June 2010, 10:29   #4
moijk
License to Bubble

moijk's Avatar
 
Join Date: May 2010
Location: Grimstad, Norway
Age: 42
Posts: 293
Quote:
Originally Posted by methodman View Post
or are there fundamnetally different concepts attached?
Beside object orientation and widespread acceptance for high level languages (Few hire people to code c/c++ if they don't have to code c/c++, then java/.net is much faster and cost effective), it has to be that less is done with direct hardware access. I'm not sure about the kernel/user model of AmigaOS so I can't comment much on how that have changed.
moijk is offline  
Old 26 June 2010, 10:57   #5
TCD
Registered User

TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 41
Posts: 24,012
Quote:
Originally Posted by gilgamesh View Post
Programming in the 80ies was mostly procedural (C, Modula). The next big thing was object orientedness (C++, Java) in the 90ies. These days you see a big trend towards functional programming (ML, Scala, most script languages).
Huh? Functional is coming back? Must have missed something Even most script languages (mind you that's not really 'programming') use OO concepts today. Next big thing might be Aspect-oriented programming. So yes, programming has changed quite a bit. That said, you can of course code today like back in the 80's or code in C++ on the Amiga. Question is, if that would be a good idea
TCD is offline  
Old 26 June 2010, 21:39   #6
gilgamesh
Linux snob

gilgamesh's Avatar
 
Join Date: Sep 2008
Location: Monkey Island
Posts: 997
Quote:
Originally Posted by TheCyberDruid View Post
Huh? Functional is coming back? Must have missed something
Yeah, it is, and that is a good thing.

Quote:
Originally Posted by TheCyberDruid View Post
Even most script languages (mind you that's not really 'programming') use OO concepts today.
That is not mutually exclusive.

Microsoft recently developed F#, which is basically OCAML for the CLR, e.g. Twitter server is written in Scala for the JRE, Python has borrowed a lot from Haskell, C# V3 and Boost for C++ introduce functional concepts, ... (All examples are OO at the same time.)

Some people argue that OO makes code hard to read, unless you are dealing with GUIs, and that purely functional stuff is less error prone because of the missing side effects. As always that is a matter of taste to a large degree, but functional programming definitely creeps back.
gilgamesh is offline  
Old 26 June 2010, 21:54   #7
TCD
Registered User

TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 41
Posts: 24,012
Quote:
Originally Posted by gilgamesh View Post
Some people argue that OO makes code hard to read, unless you are dealing with GUIs, and that purely functional stuff is less error prone because of the missing side effects.
Functional coding = missing side effects? Heh, would really like to have a read who said that. Anyway, the examples you pointed to are set around web development (which is indisputable not unimportant) and that might explain why functional concepts are re-implemented there. Except for C++ Boost, but since C++ is both anyway that's not surprising. Considering 'classic' coding, there is very little tendency to go back, while desinging in UML and choosing the easiest way to get it implemented (OO) is quite important today. That's why AOP will be the next step in coding philosophies, as it offers ways to overcome the shortcomings of OO coding. Functinal coding is nice for smaller projects and surely faster to implement (sometimes), but that it's less error prone must come from someone that really struggles with efficient OO design
TCD is offline  
Old 26 June 2010, 21:59   #8
eLowar
Citizen of Elthesh
eLowar's Avatar
 
Join Date: Sep 2003
Location: London, UK
Posts: 949
Quote:
Originally Posted by TheCyberDruid View Post
Huh? Functional is coming back? Must have missed something
Well, the new Visual Studio comes with a fully supported functional language for the .NET framework.

Quote:
Originally Posted by TheCyberDruid View Post
Next big thing might be Aspect-oriented programming.
In enterprise applications, you often have many many more layers of abstraction. The framework (e.g. Enterprise JavaBeans) manages the entire life cycle of objects (including their dependencies) and also how they are called. This allows the framework to deal with various cross-cutting concerns (e.g. security) in a similar way as Aspect Oriented Programming. I'm not aware of AOP itself actually being widely used at all.

I personally think that yes, the learning curve for general application development is significantly less steep today than it was 20 years ago, but that doesn't mean there are not still many challenges. The focus has just shifted, there are new and different problems.
eLowar is offline  
Old 26 June 2010, 22:01   #9
eLowar
Citizen of Elthesh
eLowar's Avatar
 
Join Date: Sep 2003
Location: London, UK
Posts: 949
Quote:
Originally Posted by TheCyberDruid View Post
Functional coding = missing side effects? Heh, would really like to have a read who said that.
Quote:
Originally Posted by TheCyberDruid View Post
Functinal coding is nice for smaller projects and surely faster to implement (sometimes), but that it's less error prone must come from someone that really struggles with efficient OO design
The reason functional programming is so popular in research is that due to the absence of side effects (and yes, an ideal purely functional language allows no side effects at all) it is possible to do a lot of static checking, which in effect makes it less error prone. That's not to say I personally think a purely functional style is useful for every application.
eLowar is offline  
Old 26 June 2010, 22:08   #10
TCD
Registered User

TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 41
Posts: 24,012
Quote:
Originally Posted by eLowar View Post
Well, the new Visual Studio comes with a fully supported functional language for the .NET framework.
It does indeed, yet it's still both for a reason Not saying that functional coding doesn't have a purpose or future, just that it's not the way to go (or that the industry will) in my opinion. F# surely has it's advantages over strict C# or Java OO concepts, but that's same as C++ worked for quite a while now.

Quote:
Originally Posted by eLowar View Post
In enterprise applications, you often have many many more layers of abstraction. The framework (e.g. Enterprise JavaBeans) manages the entire life cycle of objects (including their dependencies) and also how they are called. This allows the framework to deal with various cross-cutting concerns (e.g. security) in a similar way as Aspect Oriented Programming. I'm not aware of AOP itself actually being widely used at all.
Hence 'might be'. I really think some of the aspects deal with problems that 'pure' OO has quite nicely. Let's see where they head next.

Quote:
Originally Posted by eLowar View Post
The reason functional programming is so popular in research is that due to the absence of side effects (and yes, an ideal purely functional language allows no side effects at all) it is possible to do a lot of static checking, which in effect makes it less error prone. That's not to say I personally think a purely functional style is useful for every application.
Seems like I'm thinking about different side effects then
TCD is offline  
Old 26 June 2010, 22:14   #11
gilgamesh
Linux snob

gilgamesh's Avatar
 
Join Date: Sep 2008
Location: Monkey Island
Posts: 997
Quote:
Originally Posted by TheCyberDruid View Post
Except for C++ Boost, but since C++ is both anyway that's not surprising.
Could it be you're mixing up functional (lambda stuff, recursion) with procedural/imperative (while, state)?

Quote:
Originally Posted by TheCyberDruid View Post
Functinal coding is nice for smaller projects and surely faster to implement (sometimes), but that it's less error prone must come from someone that really struggles with efficient OO design
Quote:
Originally Posted by Roland Turner
Java: the elegant simplicity of C++ and the blazing speed of Smalltalk.


EDIT:
Quote:
Originally Posted by Ralph Waldo Emerson
Quotation confesses inferiority.

Last edited by gilgamesh; 26 June 2010 at 22:23.
gilgamesh is offline  
Old 26 June 2010, 22:25   #12
TCD
Registered User

TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 41
Posts: 24,012
Well, got it sorted what 'error prone' and 'side effects' mean here by now Yes, functional has its advantages there. Also seems like I should read up on F# and/or OCaml, so cheers for the heads up then
TCD is offline  
Old 27 June 2010, 11:56   #13
Photon
Moderator

Photon's Avatar
 
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 4,766
The main difference in these last 20 years is that the hardware is about half a million times faster, and that the experience of using a computer is about the same, and at about the same pace as far as the user is concerned.

As for languages evolving, well, the world settled on C in about 1990. After all, it was the best high level language. When OOLs came back in style, it only took a few years to create the logical upgrade path, C++, and most programmers who had already adapted their brain to C had no problems adapting to an even more lucid language. They were glad someone had finally "done it right" in the OOP domain and solved all the tiny flaws in C in a beautiful way.

OK, I'll stop now

Anyway, you obviously ask here because you value fellow Amiga programmer's advice, but if you intend learning a language to have programming as a job, there really are only two options, Java and C++. You rarely see want ads for any other type of programmers.

But I always think the root cause of the bias toward just a few languages is that not enough programmers just try all the languages and choose the one they fall in love with. So if you don't intend to code for a living, that's my recommendation.

There are a few suggestions I can make apart from the above two,
- Python. Try it. It's easy, powerful, portable, has Torque etc for 3D if that's your thing, and you can get experiments going fast.
- Javascript. With Sencha Touch, there's your chance to dev apps for mobile and desktop in a jiffy. Personally, I think it will explode onto the scene.
- ARM assembler. It's a beautiful CPU, and programmers are still needed for embedded applications.


Today though, languages get less and less important as programmers get less and less code to write that could have any kind of IP attached to it. It's mostly API programming within tightly predefined classes. Writing a few lines here and there in autogenerated templates and using components made by big corporations doesn't really leave much need for a programmer at all.


So if you just want to 'make programs', choose 'platform' (ie. cluster of APIs) that you hate the least, and go with whatever language they support that you hate the least.

But if you want to be a PROGRAMMER, choose the language you like most and let nobody tell you what the 'hip' one is. They'll be wrong in a year or two.
Photon is offline  
Old 27 June 2010, 12:00   #14
eLowar
Citizen of Elthesh
eLowar's Avatar
 
Join Date: Sep 2003
Location: London, UK
Posts: 949
Quote:
Originally Posted by Photon View Post
[...] but if you intend learning a language to have programming as a job, there really are only two options, Java and C++. You rarely see want ads for any other type of programmers.
Not quite true, there are lots of jobs for C# and VB.NET (and .NET in general) these days, too.
eLowar is offline  
Old 27 June 2010, 12:52   #15
gilgamesh
Linux snob

gilgamesh's Avatar
 
Join Date: Sep 2008
Location: Monkey Island
Posts: 997
Quote:
Originally Posted by Photon View Post
They were glad someone had finally "done it right" in the OOP domain and solved all the tiny flaws in C in a beautiful way.
Much to the dismay of Alan Kay and about everyone who knew Lisp.

I'd say C++ is used these days mainly for historical reasons. C is still alive in system programming, while more concise languages like Java and D take over application level and glue functions. (And I'd like to know what "tiny flaws" C++ ever solved.)

Quote:
Originally Posted by Photon View Post
Writing a few lines here and there in autogenerated templates and using components made by big corporations doesn't really leave much need for a programmer at all.
That's probably right for business logic, but this is but one (arguably important) field for programmers.
gilgamesh is offline  
Old 27 June 2010, 13:19   #16
Photon
Moderator

Photon's Avatar
 
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 4,766
To continue my overview, I should add that the evolution towards 'not having to write so much code' has become quite successful (as mentioned in my previous post), and apart from languages, APIs and dev environments becoming obsolete within a shorter and shorter timespans (forcing a programmer to be something that learns more and more languages, APIs and dev environments until his brain is crammed full of temporary custom caca defined by others), it is likely they will shortly make all programmers but the ones lucky (?) enough to work at technology-developing corporations completely unnecessary.

I don't mind being obsoleted from frameworks where there's less and less need for me, as I'm a programmer at heart. Things are clearly going in the direction that if you want to write code that has anything to do with an idea YOU have, it will all be 'for learning' and 'experimentation'. And if you make programs that will be sold and used, you will use frameworks and methodologies that leave little room for any idea you might have, and indeed even the few lines of code you get to write will be the expression of the ideas and custom constructs devised by others. It's enough to make you an anarchist, really

The extremely few being allowed to write languages, components, or 'ground-up' code will have their work cut out for them. The ones doing the cutting will be middle level management at big companies, of course. It is extremely unlikely that any code you write will be the result of an idea you had nor affect functionality in any way whatsoever.

It's not really sexy to be a bureaucrat filling out forms. I'd rather be a writer. Can you dig the parallel?

To put it short, 'being a programmer' will mean 'having a day job' in which everything you produce has absolutely zilch to do with any thoughts you may have during work hours. You WILL be peer reviewed and audited by your team to make sure you comply. If you're a good team player, you're probably okay with that. After all, there's no I in team. And after all, it's just a day job, except it's much harder than tightening bolts at a conveyor belt.

If you think I'm exaggerating, check back in 2-3 years and have a look at what your programming job consists of.

The ways out that I can envision (after thinking about it for 5 minutes anyway...) are:
- careful redirection of open source away from the described direction
- another organization (or programmers organizing themselves) actively empowering programmers
- programmers who want to actually code refusing to take dead-end, slave jobs like this
- extending the demoscene to embrace all types of code (prods) from programmers who have programming, artistic, and intellectual ambitions
- just keep on hackin' away in their room as they always have, because they enjoy it, find that expressing themselves in code hones their mental skills and lets them discover things not necessarily related to the standard abstractions, and have long since given up fighting the masses of subscribers to others' ideas, and so don't give a flying fugue and are happy.



They are in no particular order, and with different degrees of bitterness, levels of resignation, and ratios of resentment. Personally I think any method that is to work has to be a constructive one. I don't believe in programmers organizing themselves - the ones who want this are individualists with intellectual ambition. But who knows, maybe there will many more of them in a few years


And here I was, 'just wanting to add a few lines'. As Elowar said, this topic is interesting. Anyway, if someone wants to 'select a language to start programming in', this is my take. I hope something happens that makes my predictions dead wrong and my descriptions obsolete. I would like that very much.
Photon is offline  
Old 27 June 2010, 13:37   #17
TCD
Registered User

TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 41
Posts: 24,012
Quote:
Originally Posted by Photon View Post
To put it short, 'being a programmer' will mean 'having a day job' in which everything you produce has absolutely zilch to do with any thoughts you may have during work hours. You WILL be peer reviewed and audited by your team to make sure you comply. If you're a good team player, you're probably okay with that. After all, there's no I in team. And after all, it's just a day job, except it's much harder than tightening bolts at a conveyor belt.
Been like that for quite a while now anyway, no need to wait 2-3 years. Still it varies a lot, based on the size of the (software) company you work in and the type of software they make. But we digress Maybe we should focus again on how coding for and on the Amiga differs from coding (games?) on a modern PC? Since I've no idea about that (being a business logic 'workbitch'), I'm outta here
TCD is offline  
Old 27 June 2010, 17:07   #18
Photon
Moderator

Photon's Avatar
 
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 4,766
I guess I'm saying that a profession that promised excitement 20 years ago, wasn't terrible 10 years ago, is a shit job for most today - and getting worse. Whereas programmers defined what software was and were the ones making the inventions 20 years ago, 10 years ago they only got orders from their superior and could at least enjoy the implementation, but today you are beset on all sides by the iniquities of custom frameworks and APIs as well, making sure you're a good citizen - "don't get any ideas, hear?"

It's not too far-fetched to go from writing as few lines of code as possible to writing zero lines. Being obsoleted will save many from having to get shit jobs, certainly. But there is still the pure joy of seeing something you wrote from scratch work beautifully, and that won't go away, that need will still be there for many, I think. Or maybe just for those of us who experienced those thrills when we were young, maybe the new batch can do without it or find other exciting things.

It would be nice to see a solution that takes over when that point in time comes. Richard Stallman and the open source organizations have got a lot of the points needed (I toyed with it and made a point list, and was surprised to discover that it pretty much describes the fundamentals of OSS), but it might have gotten started just a wee bit too late - the software structures used are similar; just a little bit freer than the same ones that limit programmers today.

As you can see I can't let it go Fakk. At least I'm typing it here on a proper coding forum instead of wasting it on some blog.

With games it might be a while longer, but 'app store'-like channels for all games will soon make any deviant programmers possessing free will sell zero copies. If a movement counter to this 'sell your programs through us, make us rich and tell you what to do' direction gets momentum, it could actually work. Games are different from apps, and if the target platform(s) are here to stay (basically, Linux and Windows -- unless such a counter-movement is started for jailbroken (and similar) proprietary platforms like consoles) there is indeed a future there.

If you want to give it a go, I'll offer the usual language+engine combos I'm sure others have mentioned...
- Python (et al)+Torque
- FreePascal/Delphi/C++ etc + DirectX
- any language you like+OpenGL or SDL (the most open combo, but support for modern gfx cards was decidedly not as mature as DirectX last time I looked, and SDL even more limiting, depending on what you want to do this might not be a problem, of course)
- anything that lets you bang the GPU, you decide the minimum gfx card specs and that's your platform, with minimal portable interface to 'rest of platform'.
- any language+whatever puts up a pixel buffer, and then you roll your own games engine, if you think vertices+textures "has been done already".


The basic difference from Amiga, I guess, is that OOP wasn't really around then. Events and generic messaging was kinda around, but maybe you didn't use them much. You really need to grasp the fundamentals of those, and what's left should remind you enough of standard "library call" programming so you'd manage.

At one point I was strongly tempted to go Python+Torque - nice language, modern engine - maybe make an awesome game that would help in a small part to make Linux steal some of Windows' thunder as 'the' game platform. I didn't, for various reasons. But you could. Despite this, surely you could make impressive games with it.

Actually, enough people enjoy Pascal and Delphi to have started a decent indie game forum for it, easily found via google. SDL, OpenGL, and DirectX are all possible, and ported examples from the DirectX SDK were mature, fast, and easily compilable (in FP/Delphi, there isn't the compiling mess of C++ et al; set some paths and press F9 and your game is running) last I looked.

In regards to how big a change it is from Amiga, I'd say the general process making your code work is at the same difficulty level for all the available solutions - perhaps you'd find an interpreted script language easier to sink your teeth into, as most compiled languages have IDEs as well as strong run-time vs compile-time separations that delay the time from install to seeing your first small program running.

Whatever you choose, make it one where it's easy to look at a line of code and understand intuitively what it does, and that it has good set of documentation and examples, and debugger and watch components that help you. You don't want to fight syntax, poor documentation, and unhelpful vital tools during the whole development of your first game.


So, learn OOP, events, messaging through a lucid language that supports the engine and platform(s) you want, and you should be ready to rock.
Photon is offline  
Old 27 June 2010, 17:40   #19
gilgamesh
Linux snob

gilgamesh's Avatar
 
Join Date: Sep 2008
Location: Monkey Island
Posts: 997
I think you should check out these engines. They are completely free, open sourced and fairly professional:

Java: jMonkey
Python: PyGame, Panda3d, Game Blender
low level, C++ and others: Ogre3d, Crystalspace3D, Irrlicht3D

I find Blender and jMonkey the most interesting atm. And that's also the big difference. You don't need direct hardware access at all.

Last edited by gilgamesh; 27 June 2010 at 18:24.
gilgamesh is offline  
Old 27 June 2010, 22:41   #20
Plagueis/KRX
coder
Plagueis/KRX's Avatar
 
Join Date: Jul 2009
Location: a galaxy far far away
Age: 45
Posts: 84
Quote:
Originally Posted by Photon View Post
I guess I'm saying that a profession that promised excitement 20 years ago, wasn't terrible 10 years ago, is a shit job for most today - and getting worse. Whereas programmers defined what software was and were the ones making the inventions 20 years ago, 10 years ago they only got orders from their superior and could at least enjoy the implementation, but today you are beset on all sides by the iniquities of custom frameworks and APIs as well, making sure you're a good citizen - "don't get any ideas, hear?"
Nice observations Photon...

ILoveBigBrother(); // If return error go to room 101

It bothered me too to see the way Red Hat went over the years, and the strategy for beating Windows was to become just like it (like Microsoft with source), rather than offering a richer computing environment in general, as I'd seen in the past, when I started off with Slackware back in 1996. It made me switch to FreeBSD, OpenBSD, and Solaris at times.

Only recently have I been using Linux again regularly with Backtrack4 live distro, because of all the great security tools in one place, and IP forwarding in the kernel.

I agree that ARM assembly would be a great place for someone who wants to earn a living programming, plus use their own brain while they do it.

Cheers.
Plagueis/KRX is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Classic WB 1.x era apps and game mods chocolate_boy Amiga scene 1 10 March 2010 09:52
Computer speakers from Amiga era... Paul_s Nostalgia & memories 10 18 November 2009 09:02
Win95-Era, Educational/Puzzle (Not amiga) Nipedley Retrogaming General Discussion 3 09 March 2009 03:58
What are your top ten games from the 8-bit era? Bombjacker Retrogaming General Discussion 34 07 August 2004 12:50
Bleem! - The end of an era MethodGit Retrogaming General Discussion 14 21 November 2001 16:53

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 09:02.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.
Page generated in 0.09498 seconds with 13 queries