The most interesting is not the main language?

I am interested in compilers, translators and languages.

What is the most interesting, but forgotten or unknown language that you know about? And more importantly, why?

I am interested in both compiled, interpreted, and virtual languages, but not esoteric languages ​​such as Whitespace or BF.
Open source would be a plus, of course, since I plan to study and, hopefully, learn from it.

+43
programming-languages language-design
Oct 14 '08 at 10:59
source share
43 answers
  • one
  • 2

I like compilers and virtual machines, and I love Lua.

Lua is not supported in the same way as many other scripting languages, but from a mindset like yours, I’m sure you will love Lua too. I mean this, like lisp, (I can do lisp as far as I know), it has many basic functions from ADA, plus it got built-in metaprogramming, with functional programming and object-oriented programming to make any type of domain that you you might want. In addition, the virtual machine code is simple C, which means that you can easily dig right into it to appreciate even at this level.

(And this is an open source MIT license)

+30
Oct 14 '08 at 11:11
source share

I am a fan of the programming language D. Here is a Wikipedia article and an introduction from the official site .

Some excerpts from the wikipedia article:

The D programming language, also known as D, is an object-oriented, imperative, multi-paradigm system programming language by Walter Bright of Digital Mars. It originated as C ++ reengineering, but although it is mainly affected by this language, it is not a C ++ variant. D redesigned some C ++ functions and was influenced by concepts used in other programming languages ​​such as Java, C #, and Eiffel. The stable version 1.0 was released on January 2, 2007. Experimental version 2.0 was released on June 17, 2007.

by function:

D is developed using practical use lessons in C ++, and not from a theoretical point of view. Although it uses many C / C ++ concepts, it also discards some and, as such, does not have strictly backward compatibility with the C / C ++ source code. It complements C ++ functionality, also implementing contract design, unit testing, true modules, garbage collection, first-class arrays, associative arrays, dynamic arrays, array partitioning, nested functions, inner classes, closure [2], anonymous functions, compilation performing a time function, lazy evaluation and template reengineering syntax. D retains the ability of C ++ to do low-level coding and adds support for its built-in inline assembler to it. Complex C ++ inheritance is replaced by a single Java-style inheritance with interfaces and mixins. D, the syntax of operators and expressions is close to the C ++ syntax.

+25
Oct. 14 '08 at 12:47
source share

I guess a lot depends on what you mean by "non-mainstream".

Will lisp be considered as non-core?

+18
Oct 14 '08 at 11:00
source share

I would advise taking a look at Erlang - recently he got a little print, so some of the training resources are excellent. If you used OO and / or procedural languages, Erlang definitely flexes your mind in new and exciting ways.

Erlang is a pure functional language with support for parallel, distributed, and fault-tolerant programs. It has a number of interesting features, including the fact that variables are not variables at all - they cannot be changed after the declaration and are actually better understood as a form of a template.

There is some talk around the blogosphere about building on top of the Erlang platform (OTP) and supporting machines for other languages ​​such as Ruby - Erlang, then it will become a kind of virtual machine for running parallel applications, which would be a pretty exciting opportunity.

+16
Oct. 14 '08 at 11:23
source share

I recently fell in love with Ocaml and functional languages ​​in general.

Ocaml, for example, offers the best of all possible worlds. You get code that compiles to an executable native machine language as fast as C or universally portable byte code. You get a translator to bring REPL speed to development. You get all the features of functional programming to create completely orthogonal structures, deep recursion and true polymorphism. On the contrary, this is Object-Orientation support, which, in the context of a functional language that already provides all OOP promises (encapsulation, modulation, orthogonal functions, and polymorphic processability), means OOP, which is forced to actually prove itself.

+11
Oct 14 '08 at 12:31
source share

Smalltalk (see discussion here) . Kind of great dad dynamic languages ​​(with the possible exception of Lisp and SNOBOL). It is very pleasant to work and trample on Java sadly and now new languages ​​such as Python and Ruby.

+10
Oct 14 '08 at 11:16
source share

FORTH was a language designed for low-level code on earlier processors. Its most notable feature was mathematical operations based on the RPN stack. The same type of math used on early HP calculators. For example, 1 + 2 + 3 + 4 = will be written as 1, 2, 3, 4, +, +, +

+10
Oct. 14 '08 at 11:16
source share

Haskell and REBOL are both exciting languages, for a variety of reasons.

Haskell can really open your eyes as a developer, with concepts such as monads, partial application, pattern matching, algebraic types, etc. This is a buffet for a curious programmer.

REBOL doesn't slouch either. At first this is deceptively simple, but when you start to delve into concepts such as contexts, dialects of PARSE and Bindology, you understand them much more than it seems at first glance. The best part about REBOL is that it is much easier to start with it than with Haskell.

I can’t decide what I like best.

+8
Oct. 14 '08 at 12:17
source share

Boo is for the .NET platform and is open source. Inspired by Python.

+7
Oct 14 '08 at 11:04
source share
+7
Oct 14 '08 at 12:33
source share

PROLOG is a rule-based language with back-track functionality. You can create a code that is very understandable for a person (as in prose).

+7
Oct 14 '08 at
source share

I find the restriction languages ​​interesting, but it's hard to understand what is forgotten or unknown. Here are some languages ​​that I know about (this, of course, is not an exhaustive list):

  • Ciao , YAP , SWI-Prolog , and GNU Prolog are all Prolog. I think they are all open source. Ciao, gnu prolog, and possibly others, as is often the case in Prolog implementations, support other types of restrictions. For example, integer programming.
  • Mozart and Mercury are both, as I understand it, alternative logical programming languages.
  • Alice is more in the ML family, but supports programming constraints using the GECODE C ++ Library.

Drifting a little off topic ....

  • Maude is an interesting term to rewrite a language.
  • HOL and COQ are mechanized proof systems that are commonly used in the language community.

Lambda-the-Ultimate is a good place to talk and learn more about programming languages.

+6
Oct 14 '08 at 12:56
source share

I would say Scheme, especially in it the R6RS embodiment.

+5
Oct. 14 '08 at
source share

Modula-2 is not the main language that I found most interesting. It looks mainstream, but it doesn’t work the way we are used to. It inherits a lot from Pascal, but still differs enough to provide interesting learning opportunities.

+4
Oct. 14 '08 at 12:32
source share

Take a look at Io at http://www.iolanguage.com/ or Lisaac at: https://gna.org/projects/isaac/ or Self at: http://self.sourceforge.net/ or Sater (now completely forgotten ) or Eiffel http://www.eiffel.com

Why are there several reasons. Io is absolutely minimalistic and does not even have "flow controls" as syntactic objects. Lisaad is a continuation of the Eiffel with many simplifications AFAIKT. "I" is a continuation of Maltalk, and Io is also quite a lot from "I". The main thing is that the distinction between a class and an object has been denied. Sather is Eiffel's answer with a few other rules and better support for functional programming (from the start).

And Eiffel is definitely a hallmark for statically typed OO languages. Eiffel was the first langauge to support contract design, generics (aka templates), and one of the best ways to handle inheritance. It has been and remains one of the simplest languages. For my part, I found the best libraries for Eiffel .....

The creator has only one problem, he did not accept other contributions to the OO field .....

Hello

+4
Oct 22 '08 at 10:35
source share

I recently learned about the existence of Icon from this question . Since then I have used it in answers to several questions. ( 1 , 2 , 3 , 4 )

This is interesting because of its evaluation strategy - it is the only imperative language I know that supports rollback. This allows you to make some nice concise code for many things :)

+3
Oct. 14 '08 at 11:13
source share

Learning any language that requires you to rethink your programming habits is a must. A sure sign is the pace at which you look at the documentation of the core language (and not the library). The quick meaning here is barren.

My short list would be in my exposure order and what were the concepts that I learned from them:

  • Assembly, C: Great for teaching pointers and their arithmetic.
  • C ++: same as C with an introduction to generics, if you can withstand incredibly detailed syntax.
  • Ruby / Lua: dynamically typed scripting languages, binding records for existing C libraries.
  • Python / C # / Java: Missed, these languages ​​look at me as a rethinking of concepts occurring elsewhere with a huge standard library. Of course, all packages are good, but here you will not learn new concepts.
  • OCaml: type infererence done right, partial application, compiler output as typical, default immutability, how to handle nulls correctly.
  • Haskell: default laziness, monads.

My & euro; .02.

+3
Oct 14 '08 at 12:17
source share

I can’t believe that the logo is so forgotten. Ok, this is a logo. Sounds like lisp, but with a bit more ugly syntax. Despite the fact that it works with lists in the logo, you come across the delightfully named operations "butfirst" and "butlast". = P

+3
Jun 23 '09 at 2:12
source share

ML. Studying it and using it, you think differently about programming problems. In most cases, this also gives one patience. Most.

+3
Oct 02 '09 at 20:21
source share

How about go ? This is completely new, therefore it is unknown and is not the main one (yet).

This is interesting because the syntax is similar to what happens after you put C and pascal in the jar and run them.

+3
Dec 01 '09 at 22:52
source share

Well, once it was called by MUMPS , but now it was called InterSystems Caché http://www.intersystems.com/cache/

+2
Oct. 14 '08 at 13:17
source share

The first answer is Scheme. It's not widely used, but it definitely seems to be a reliable language to use, especially considering the reliability of DrScheme (which actually compiles Scheme programs into its own binary code).

After that - Haskell is incredibly interesting. This is a language that does lazy evaluations correctly, and the consequences are incredible (including things like single line fibonnaci sequencing).

Going more mainstream, Python is still not very widely accepted in business, but it definitely should be, by now ...

+2
Oct. 19 '08 at 7:51
source share

Ken Kahn ToonTalk, a cartoonish language with theoretical basic features: http://www.toontalk.com/

Prograph: http://en.wikipedia.org/wiki/Prograph ... it seems Prograph lives like Marten: http://andescotia.com/products/marten/

The Self IDE was / is wonderful, tell us about the Stream (in the sense of Csíkszentmihályi) ...

In general, however, I have to say that Haskell is the most interesting, for the potential advantages in the calculations that it represents.

+2
Oct 30 '08 at 18:15
source share

Harbor for dynamic type. Great solution for business applications.

+2
Dec 01 '09 at 22:27
source share

The circuit immediately comes to mind, better than Lisp.

Also, I know your question will disqualify esoteric languages, but consider INTERCAL . It has an existential COME FROM GOTO (for example, GOTO , but placed at the transition destination, not the transition point). This operator seems strange, but can we say that its influence is observed in Aspect-oriented programming? In AOP, tips are often indicated in some external place, just viewing the recommended code does not always make the control flow transparent. However, looking at the advice, he informs the reader where the control comes from.

It seems like another person agrees with me that COME FROM is like AOP

+1
Oct. 14 '08 at 13:08
source share

Mathematica, because it is a uniquely successful term to rewrite a language (a completely different method for evaluating code!).

+1
Oct 19 '08 at 5:37
source share

REIA!

http://wiki.reia-lang.org/wiki/Reia_Programming_Language

This Erlang made sense, it is useless, and I'm in love. He is so unknown that he doesn’t even have a wikipedia page!

+1
Oct. 19 '08 at 7:24
source share

The first major (non-BASIC) language I learned was Dream Maker, from http://www.byond.com . It is somewhat similar to C ++ or Java, but it is pretty much prepared for developing multi-player online games. It is very based on inheritance. This is a language learner, especially as a source language, it gets satisfactory results faster and, frankly, most people who are learning programming for the first time are interested in one ... game.

+1
Apr 28 '09 at 2:53
source share

I find Factor , Oz and OCaml quite interesting. In fact, I started using Factor for personal projects.

+1
May 01 '09 at 12:45
source share

Rebol of course! It is so simple but so powerful to learn it at http://reboltutorial.com

+1
Jun 23 '09 at 1:48
source share
  • one
  • 2



All Articles