PDA

View Full Version : Out of the way



jimi_hendrix
November 19th, 2008, 03:44 AM
i enoy learning those lesser known out of the way or old languages...any suggestions?

slavik
November 19th, 2008, 04:21 AM
forth, algol60, pascal

cabalas
November 19th, 2008, 04:24 AM
Cobol - I'm told cobol programmers are worth their weight in gold these days.

gpsmikey
November 19th, 2008, 04:49 AM
Froth - a Forth like language that was around for a while for the PC - not sure if it is still out there. Forth is a good one though - easy to implement on small 8 bit micros for doing various "gadget" type things. Z-80 assembler was always fun -- I still remember quite a few of the opcodes (hex or octal). :)
We actually had (still do actually) a forth interpreter in many of our avionics boxes that was available during bench testing (disabled for flight conditions).

mikey

pgatrick
November 19th, 2008, 04:54 AM
Ada, Common Lisp.. :)

Sinkingships7
November 19th, 2008, 05:01 AM
Common Lisp.

slavik
November 19th, 2008, 05:07 AM
I wouldn't say that Ada and CL are out of the way exactly ...

Sorivenul
November 19th, 2008, 05:27 AM
* Occam (http://en.wikipedia.org/wiki/Occam_programming_language)
* Modula-2 and/or Modula-3
* Sather (http://en.wikipedia.org/wiki/Sather) (Not quite as old)

dekeller
November 19th, 2008, 05:41 AM
If you want to go really old school, PL/1 or APL would get you there. PL/1 was a Pascal like language before Pascal was around with strong typing and a compliler that would spit out a million lines of error messages if you forgot one ; at the end of a statement. APL was a math language were every variable was assumed to be a vector or an array. It also had a ton of matrix algebra operators that other languages do not have. Also, it scanned from
right to left. While it was not a good thing, it was possible to write a program of 6 or 7 lines of code that would take someone else 2 weeks to a month to work through or debug.

Darryl Keller

samjh
November 19th, 2008, 07:37 AM
I wouldn't say that Ada and CL are out of the way exactly ...

Common Lisp isn't really out of the way, as a lot of programmers have been exposed to at least one dialect of Lisp.

Ada is really out of the way if you learned to program post-80s and 90s. Hardly anyone knows the language these days.

@ OP

For really wacky languages, just see here: http://en.wikipedia.org/wiki/Category:Esoteric_programming_languages

sjbaugh
November 19th, 2008, 07:58 AM
There were two other Algol60 (the first language I learnt) based languages: Coral66 and Algol68. I have also written in a predecessor of C: BCPL.

shadylookin
November 19th, 2008, 08:03 AM
Cobol and I've heard you can make some money maintaining old mainframes with it as well

sjbaugh
November 19th, 2008, 10:32 AM
Cobol and I've heard you can make some money maintaining old mainframes with it as well

open-cobol is in the Ubuntu repositories so that could be a good candidate. It is certainly quite different to modern languages.

Steve

slavik
November 19th, 2008, 01:06 PM
Common Lisp isn't really out of the way, as a lot of programmers have been exposed to at least one dialect of Lisp.

Ada is really out of the way if you learned to program post-80s and 90s. Hardly anyone knows the language these days.

@ OP

For really wacky languages, just see here: http://en.wikipedia.org/wiki/Category:Esoteric_programming_languages
I still disagree. Look at the aviation industry. Pretty much all critical software (in the Control Tower and on Planes) is written in Ada.

jimi_hendrix
November 19th, 2008, 01:23 PM
thanks all these look interesting

jimi_hendrix
November 19th, 2008, 11:01 PM
these arnt exactly out of the way...but what would you recommend, MATLAB or Octave...i think either would come in handy for math class

jimi_hendrix
November 19th, 2008, 11:13 PM
only problem with old langauges is lack of tutorials...

snova
November 19th, 2008, 11:19 PM
Probably Octave. MATLAB is proprietary, Octave is the open source equivalent. (There are more, it appears.)


Octave is a free computer program for performing numerical computations which is mostly compatible with MATLAB. It is part of the GNU Project.

jimi_hendrix
November 19th, 2008, 11:55 PM
if anyone knows any tutorials for those really archaic (algol) languages then feel free to share

octave is fair game too

@snova by proprietary do you mean closed source or pay money for

Cracauer
November 20th, 2008, 12:00 AM
Intercal :)

If you think GOTO is bad you haven't seen COMEFROM.

In more serious news, Prolog might be a good different experience. Smalltalk is dead enough by now to count, is it? Didn't measure heartbeat lately.

Cracauer
November 20th, 2008, 12:01 AM
if anyone knows any tutorials for those really archaic (algol) languages then feel free to share


Archaic Algol language? No problem (http://www.cplusplus.com/doc/tutorial/)

snova
November 20th, 2008, 12:05 AM
I don't know, I've never tried MATLAB or any variant. All I know is that on the Wikipedia page it says it's under a proprietary license.

It appears to run on Linux, though... (only based on the description under the screenshot! Don't take my word for it.)

I can't tell whether you have to pay for it or not. It won't let me see pricing without logging in.

http://www.mathworks.com/products/matlab/pricing_licensing.html?tab=student

So it appears to be both, although it might depend on the license...

(How quickly I get used to free software!)

samjh
November 20th, 2008, 12:06 AM
I doubt you'll find an ALGOL compiler for Linux (or at least on Ubuntu). There are plenty of ALGOL-based languages, but I haven't come across ALGOL itself in any FOSS project.

For Ada, my post in this thread: http://ubuntuforums.org/showpost.php?p=2914903 contains lots of introductory info and links to online resources. "Hello Ubuntu" in every programming language - the first example is in Ada: http://ubuntuforums.org/showthread.php?t=497579

There is also Pascal: http://ubuntuforums.org/showpost.php?p=2061629

Gilabuugs
November 20th, 2008, 12:25 AM
Matlab is a bit over 100US for a student license and a few grand for a commercial version, octave has a lot of the functionality that matlab has and even a large amount of the commands

if you go for one of those choose octave and maybe move up to matlab if you feel you want to

jimi_hendrix
November 20th, 2008, 01:19 AM
ok ill do octave...now to explore some of these languages...

jimi_hendrix
November 20th, 2008, 01:21 AM
@samjh

after looking at your pascal post i say the forum should start a library of "how to get started in <language>" for some of the lesser known languages (ie tutorials and what compiler/interpereter/any ide's or editors that support it)

jimi_hendrix
November 20th, 2008, 01:25 AM
Archaic Algol language? No problem (http://www.cplusplus.com/doc/tutorial/)
...

jimi_hendrix
November 20th, 2008, 02:02 AM
anyone got smalltalk tutorials hidden away somewhere?

cabalas
November 20th, 2008, 02:20 AM
anyone got smalltalk tutorials hidden away somewhere?

You should have a look at squeak (http://www.squeak.org/) which according to their website is:


Squeak is a modern, open source full-featured implementation of the powerful Smalltalk programming language and environment. Squeak is highly-portable - even its virtual machine is written entirely in Smalltalk making it easy to debug, analyze, and change. Squeak is the vehicle for a wide range of projects from multimedia applications, educational platforms to commercial web application development.

and seem to have a reasonable amount of tutorials: http://www.squeak.org/Documentation/

samjh
November 20th, 2008, 02:24 AM
@samjh

after looking at your pascal post i say the forum should start a library of "how to get started in <language>" for some of the lesser known languages (ie tutorials and what compiler/interpereter/any ide's or editors that support it)

http://ubuntuforums.org/showthread.php?p=2061629 ;)

jimi_hendrix
November 20th, 2008, 03:44 AM
i cant decide which to go with...

CptPicard
November 20th, 2008, 05:32 AM
Go with Lisp. The other languages are dead for a good reason, Lisp is alive and strong simply because it got stuff right to begin with.

jimi_hendrix
November 20th, 2008, 01:00 PM
which dialect?

elbarto_87
November 20th, 2008, 01:17 PM
I mainly use Matlab for my bigger engineering projects as its what I first used and what I am confident with. I found octave to be pretty similar, but my in my opinion matlab "just works". Yes its proprietary software, and my student cost me $100 (under 1/30th of the full price) and it is excellent for what it does.

Out of all the free alternatives, scilab is probably the nicest language that's free that does matlab style programing (in my opinion). I think python with numpy is also an exelent choice which I hope to get more familiar with, but I read elsewhere that you do not like the idea of python so I wont go into that to much?

Matlab is about the only language that I have enough practice in (although not heaps) to make any useful comments on. What projects are you intending to use matlab/octave for?

Elbarto

pmasiar
November 20th, 2008, 03:32 PM
Go with Lisp. The other languages are dead for a good reason, Lisp is alive and strong simply because it got stuff right to begin with.

Forth is also alive (used for drivers) because nothing can beat in in that area, including C.

nvteighen
November 20th, 2008, 04:11 PM
@snova by proprietary do you mean closed source or pay money for

Strictly talking, proprietary means "closed source", not commercial. There is free (=gratis) proprietary software (Freeware) and there's also commercial Free Software like Red Hat Enterprise Linux and the earliest versions of Emacs which Stallman had to sell in order to keep living.

But, usually, people associate the terms "proprietary" and "commercial" because it's the most usual fashion (MS Windows, Antivirus software, whatever).


Forth is also alive (used for drivers) because nothing can beat in in that area, including C.

I also recommend you Forth. Probably you won't ever do anything serious with it (unless you get into drivers programming), but it's quite fun, as it is a structured-procedural language (like C) but stack-based. It also had some Lisp influence on the fact that the compilation process is part of the same language (you can disassemble any function using the 'see' procedure).

If interested, install the gforth package in Ubuntu. And also look at: GForth's Manual (http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/) (though it's intended to be a manual, it also serves as a tutorial). And This beginner's guide to Forth (http://galileo.phys.virginia.edu/classes/551.jvn.fall01/primer.htm) (it mentions to be referred to Win32Forth. Don't worry, that's the Windows port of GForth)

JohnFH
November 20th, 2008, 04:18 PM
ML - a great functional language that requires a different programming mindset.

http://www.dcs.napier.ac.uk/course-notes/sml/manual.html

http://www.cs.cmu.edu/afs/cs.cmu.edu/project/fox/mosaic/sml.html

drubin
November 20th, 2008, 05:05 PM
forth, algol60, pascal

Pascal is not old and lesser known :)
I suggest learning Binary. or assembler.<< Teaches you memory management like you have never seen it before.

Cracauer
November 20th, 2008, 05:33 PM
which dialect?

If you gonna try Lisp, go with Common Lisp. Use SBCL, SLIME and Peter Norvig's book. Your programming brain will never be the same.

I can't recommend Scheme. I wasted too much time on that toy back in the 1990ties and won't put anybody else through it. The only use is if you go on a mission to work through SICP cover to cover.

CptPicard
November 20th, 2008, 06:12 PM
Calling Scheme a toy is a bit harsh... it's meant to be a minimal Lisp that demonstrates what exactly are the required primitives to get a programming language. It's meant to enlighten, not necessarily be a "practical tool", and IMO it does it very well.

Common Lisp is much more complex because it's meant to be practical ... but that results in annoyances such as the function/value namespace difference.

If "learning lisp" is the goal, time spent on Scheme is not wasted. Most of the stuff, in particular the design mindset, transfers as is to CL.

And oh yeah, Scheme has continuations built in... I really miss a "yield" generator statement in CL (and no, I haven't seen a decent macro hack for that yet) :)

pmasiar
November 20th, 2008, 06:15 PM
Assembly is fine language to know too.

BTW simplest way to play with ASM is inside Forth, because Forth provides interactive shell, and includes ASM: any word ("function") can be programmed in Forth or ASM, as you wish.

nvteighen
November 20th, 2008, 07:39 PM
I can't recommend Scheme. I wasted too much time on that toy back in the 1990ties and won't put anybody else through it. The only use is if you go on a mission to work through SICP cover to cover.

Toy? Ok, it's not the most suited language for production software (because of lack of libraries... though there are the SLIB and SRFI projects...), but if you "play" with it, you can get some interesting ideas... see my sig.

jimi_hendrix
November 20th, 2008, 11:51 PM
great suggestions...i would not chose ASM because its too hardware specific...

Reiger
November 21st, 2008, 12:10 AM
MIT/Scheme is useful if only because it has reasonably wide support as a 'scripting language'; think GIMP's script Fu, which really is just a scheme lingo welded onto a GIMP/GTK C++ layer.

Similarly, MIT/Scheme has been ported to the Java platform as well, making this the (IIRC) only Lisp-ish language available there -- apart from through the Proccess class 'backdoor' + interpreter.

If out of the way can be defined as easily as 'not Algol-like'; then virtually every language which doesn't look like C done differently can be included. One could, on that basis, even argue Python should be counted in; though we are on a much more solid footing with Haskell or ML (or derivatives) even though these are going rather strong 'in the industry'.

jimi_hendrix
November 21st, 2008, 12:20 AM
ive got no problem with algol if i can find a compiler and tutorial

CptPicard
November 21st, 2008, 01:14 AM
Similarly, MIT/Scheme has been ported to the Java platform as well, making this the (IIRC) only Lisp-ish language available there --

"The" lisp for the JVM is Clojure... it is a nice one, too.

Envergure
November 21st, 2008, 02:18 AM
Brainf*ck, Shakespeare.

For real, Processing.

Cracauer
November 21st, 2008, 06:01 PM
MIT/Scheme is useful if only because it has reasonably wide support as a 'scripting language'; think GIMP's script Fu, which really is just a scheme lingo welded onto a GIMP/GTK C++ layer.

Similarly, MIT/Scheme has been ported to the Java platform as well, making this the (IIRC) only Lisp-ish language available there -- apart from through the Proccess class 'backdoor' + interpreter.

If out of the way can be defined as easily as 'not Algol-like'; then virtually every language which doesn't look like C done differently can be included. One could, on that basis, even argue Python should be counted in; though we are on a much more solid footing with Haskell or ML (or derivatives) even though these are going rather strong 'in the industry'.

What? GIMP's Scheme evalutator is definitely not MIT Scheme. It uses SIOD.

I also don't see MIT Scheme being ported to the Java JVM either, that's Kawa.

All these Scheme have different and incompatible libraries. That's what makes them toys.

nvteighen
November 21st, 2008, 07:52 PM
All these Scheme have different and incompatible libraries. That's what makes them toys.

That's because of the anarchy that rules everything in the Lisp world. But I don't see Scheme just as a toy... of course it's not meant for professional software (because of the implementations incompatibilities and the lack of bindings to librarie) but it does allow you to do interesting projects, although with a different development process (not creating applications, but rather languages to solve some task and then use the interpreter as your language's interpreter!)... Take a look at Savannah (http://savannah.gnu.org) and search for Scheme.

CptPicard
November 21st, 2008, 08:22 PM
As I said before, Scheme is meant to be an educational, academically enlightening Lisp. It plays that part well, without tangling the programmer up in complexities of a more "complete" implementation. Libraries really are irrelevant in this context, it's all about the core language.

The best part of course is that you can get your enlightenment in Scheme and still you have just gained from it if you choose to move over to something like Common Lisp. In particular, for a beginner, I would not recommend Common Lisp straight away... there is way too much baggage when you're just trying to understand what it all is about.

Reiger
November 21st, 2008, 09:13 PM
What? GIMP's Scheme evalutator is definitely not MIT Scheme. It uses SIOD.

Never said it did. Said GIMP's Script-Fu thing is "just a scheme lingo welded...", which means you should've read that bit a little more closely.

Now as for:

I also don't see MIT Scheme being ported to the Java JVM either, that's Kawa.

https://scripting.dev.java.net/

Which mentions "Scheme", and mentions the MIT people behind the language itself. Of course that doesn't automatically render it *MIT* Scheme, that's right. Point is here that MIT/Scheme *or one of its derivatives* has been ported...

Cracauer
November 21st, 2008, 09:20 PM
You make good points and I'm the last one to say that Common Lisp isn't a mess. Lots of stuff that could have been packaged with same functionality in 1/3rd the size.

However, not only does Common Lisp come with a large ANSI standard library which contains most tools you need for implementing algorithms (as opposed to system stuff like threads, graphics etc), as opposed to Scheme.

You have real repositories of portable libraries for Common Lisp these days, of libaries that run on most OpenSource implementations. CLOCC is an example.
http://clocc.sourceforge.net/

Many of these projects are also portable:
http://common-lisp.net/projects.shtml

The next problem is that all of today's OpenSource Common Lisp implementations are compilers. Many are native code, some via-C, some bytecode machines. That's as low as it gets.

In the Scheme world you often have interpreters compared to which even Python and Ruby look like a F-16.

That's fine as long as your goal is to learn fundamentals of programming, e.g. by working through SICP.

But it is not fine to discover that your -say- string pattern matching runs a factor of 500 slower than in SBCL and is actually slow enough that you can't get through your real-world input files. And these numbers aren't far off the truth.

CptPicard
November 21st, 2008, 09:34 PM
That's fine as long as your goal is to learn fundamentals of programming, e.g. by working through SICP.


Which is sufficient enough. Most of the really interesting stuff I learned in programming came from Lisp-as-Scheme. I apply that stuff all the time all kinds of languages, although I certainly do use Common Lisp as my "practical Lisp"... I still hope that it a) had call/cc and b) was a Lisp-1. Being able to invoke a function in function position from a variable is cool, although probably not as easily compilable.

The fact that SBCL and pals are compilers are, from a practical standpoint, of course a good thing. Personally I am really looking hard at Qi these days...

jimi_hendrix
November 21st, 2008, 11:50 PM
i seem to start arguments wherever i go

jimi_hendrix
November 22nd, 2008, 02:37 AM
forget this post

nvteighen
November 22nd, 2008, 01:28 PM
i seem to start arguments wherever i go
Well, this at least is an reasonable and rational argument. Not an emotional and irrational flamewar.

drubin
November 22nd, 2008, 01:30 PM
i seem to start arguments wherever i go

Such is the topics you bring up. Not that this is a bad thing. Challenges other to think.


Well, this at least is an reasonable and rational argument. Not an emotional and irrational flamewar.

I am surprised how well this thread has actually carried on. Think we as a community are becoming more tollerent of other languages?

CptPicard
November 22nd, 2008, 03:41 PM
Think we as a community are becoming more tollerent of other languages?

Never been intolerant, the problem has always been at the blub low-level guys' end who are in denial and wish to remain so ;)

drubin
November 22nd, 2008, 05:22 PM
Never been intolerant, the problem has always been at the blub low-level guys' end who are in denial and wish to remain so ;)

Only one way to fix this.

CptPicard
November 22nd, 2008, 05:30 PM
Only one way to fix this.

Yes... got to evangelize to them whether they want to listen or not.. :)

drubin
November 22nd, 2008, 05:32 PM
Yes... got to evangelize to them whether they want to listen or not.. :)

No ban them! :) --Maybe your too:)

What do you think?

CptPicard
November 22nd, 2008, 05:42 PM
What do you think?

-1... it's much more fun to just duke it out... :)

http://icanhascheezburger.files.wordpress.com/2008/03/funny-pictures-boxing-hamster.jpg

jimi_hendrix
November 22nd, 2008, 06:07 PM
it's much more fun to just duke it out... :)

+1

drubin
November 22nd, 2008, 07:11 PM
-1... it's much more fun to just duke it out... :)

Much better since you added the pic :)