'''This page is open to everyone. Don't be shy!''' ----- '''My favourite local and internet languages''' Multiple favorites are allowed. Please also provide a short description of why you like that language. ----- '''JonathanTang''' * Overall: DylanLanguage. 80% of the power of CommonLisp with 20% of the hassle. Made some very good decisions with regards to GeneralizedReference''''''s, FirstClassFunction''''''s, and library design. Unfortunately macros are a bit hard to use, but at least it has them. * For really hard problems: CommonLisp. No other language even comes close to the power CL has. If you can think of a language feature, chances are Lisp has it. * For elegance: HaskellLanguage. I love being able to write one-line functions. And the fact that everything is first-class allows you to create wonderful decompositions of problems. * For concurrency: ErlangLanguage. No contest here; it's one of the few languages designed for concurrency, and also has a simple syntax, PatternMatching, and an elegant design that has few core features that synergize well. * For beginners: PythonLanguage. The indentation-specific syntax is really good for beginners, and the choice of operator names prevents code from being too unreadable. And it gives you room to grow, unlike some (*cough*VisualBasic) beginner's languages. * ''Any choices for an Internet language?'' The WWW is a horrible bastardization that set UI technology back 30 years, so no. (See InternetInterface.) But if I had to pick a favorite, it'd be Python. I usually end up using PHP though, just because that's what every server supports. ---- '''Anonymous # 1''' In general I like to see a practical blending of the UnixWay of doing things and the Lisp/Smalltalk ways. Ruby is pretty good at this, Python is all right. Some Scheme dialects are closer in the abstract (GuileScheme, scsh) but less practical in practice (e.g., no CGI or good curses support for Guile); fragmentation is a bitch in the Parenthe''''''Sphere. If I'm writing just for me I'll often use EmacsLisp. ----- '''SkipSailors''' * I can't stop loving C++. The first step to beating an addiction is to admit you have one. A pure virtual templated abstract smart pointer class, makes me shiver to think of it! I don't much care for COM. When I actually have to get something done I whip out a perl script, so I can sink back in to the C++ code. ---- '''KarlKnechtel''' My favourites used to Java and Perl. That's got to be a pretty unusual combination. Now that I've got a good handle on Python, though, I haven't gone back to Perl for '''anything'''. Java and Python is still a slightly unusual combination, though probably less so. ---- '''JasonGrossman''' IoLanguage, for incredible simplicity and beautiful syntax, as well as most of the power of LISP. Python for syntax too, but I haven't actually used it in anger. And Algol68, because it lets me use spaces in variable names! Any other languages let me do that? ''Yeah: Tcl. MacLisp and some CommonLisp implementations too, if you delimit them with vertical bars.'' [SQL allows them, although they're widely considered a bad idea there. Apparently Smalltalk allows them, too; news to me: http://wmf.editthispage.com/discuss/msgReader$1339?mode=day ] [Fortran has always allowed them, too. It merely ignores them, they're not an actual part of the identifier, but still, they can appear in the middle of an identifier. Incidentally this feature is deprecated since Fortran 90 and can be turned off if one goes with the "free-form source" option rather than the "fixed form source" option. More than anyone wanted to know about a living-dead language, I'm sure.] [Speaking of which, Cobol allows (significant) dashes in identifiers, which a lot of people adore for the same reason that some like spaces in identifiers.] ---- I'm partial to the AplLanguage and the JayLanguage. APL is more like the air I breathe, where Java and C and the like are like Diesel fumes. (RandyMacDonald) ---- '''MichaelSparks''' * My fist love was C++. I started with assembly, then graduated to C, then C++. C++ allowed me to still have a psychological connection to the hardware, which was important for me at the time. It also had enough high-level features that I was able to somewhat wean myself off of that hardware view of the world. I still claim to prefer C++ for projects where speed is more important than maintainability, but very few of those projects exist. * Kicking and screaming, I learned C# for work. At first I thought it was an amazing bastardization of C++ that killed all of the useful patterns like ResourceAcquisitionIsInitialization. Then I learned that I could actually be very productive in C#. I learned to stop worrying and love the GarbageCollector. There is a lot I don't like about C# itself, but it has been an excellent stepping stone. * I had recently been trying to learn Lisp. I've determined that it's not going to work for me. EssExpressions are too lacking in structure and expressiveness. See RealmOfNecessity. I'm not giving up on functional languages though - I think HaskellLanguage may be a good alternative. ---- '''GeoffSobering''' Perhaps the happiest times I've had programming were in IDL (InteractiveDataLanguage). Perhaps it was the environment and problems I was solving, and less the language itself... ---- RBasic in AdvancedRevelation, now Basic+ in OpenInsight (the new name makes searching difficult) Comes with a syntax checking compiler which produces p-code to run more efficiently on the VirtualMachine. It is a descendant of PickBasic. Because RBasic is a very versatile language, I will give a FunctionalProgramming view of it. The language can be used as if it were a roll-your-own function builder. You do not need to differentiate between system provided functions and user provided functions, at least not conceptually. Some system-provided functions, such as database access and user conversation, force a structure on the source code. These can all be encapsulated in functions which give a clear sense of information flow from right to left down the page. Scope is clear and simple - all variables are local to the current source's text. This allows the source to be viewed in one consistent context, without distraction by the consideration of scope. The only outside variables directly accessible within the source's text are those passed as arguments (or returned). There is a form of common, which is global to the session, and another which is global to the thread, but other than some system imposed common, any references to common can be replaced with functions. This abstraction allows the achievement of the objectives of common without forcing the use of a variable of an implicit 'external' scope. (Note - this is because once you allow any variable to be a reference to an external value, shared with other processes, then any variable may be an external reference when visually scanning the source. Using functions to retrieve or update external 'variables' provides a mechanism for specifying purpose or intent of the access of this external data. This removes some of the need to inspect the intricacies of each sentence of source, allowing a more natural reading comprehension) "Hello World" Notify Message("Hello World") ---- TopMind * FoxPro, an ExBase derivative, for quick-and-dirty apps. I can whip stuff out real fast in that language/tool. * Experimenting with TclLanguage, it has some interesting concepts, but seems to be missing a better way to X-ray what is going on since it relies heavily on string evaluation indirection. * Decided that Lisp was not for me, although an interesting concept based on simple building blocks that can be anything you want. It's just hard to read. It needs more ugliness and grit to give it visual patterns or something. ---- '''GarryHamilton''' * Do I have to pick just ''one'' language? * FoxPro has been my most productive language. Its integration of language with tables/databases, inclusion of well-integrated SQL subset, interactive testing and debug, ability to interpret ad-hoc commands at run-time, typeless vars, yet support for essential types, table-array/array-to-table interchange, high-speed indexing, low-level keyboard and mouse support, and truly portable data make this pretty much a lock for me. I've written all kinds of stuff that violate the language's basic paradigm, and it doesn't seem to mind (like an AssemblyLanguage interpreter/simulator). ** ''Indeed. I hope its best ideas come back in a more modern (sell-able) form and that TableOrientedProgramming makes a come-back, sparking a new generation of tools/languages. -top'' * ForthLanguage is my romantic favorite. If I had the time (or sponsorship) this is what I'd build skills in. * AssemblyLanguage is my roots, and I always enjoy assembler projects. * CeeLanguage and CeePlusPlus currently pay my bills. ---- '''TimLesher''' * Overall award: PythonLanguage. It has a few grotty corners, but overall it's the best mix I've found between elegance (higher-order functions, dynamic typing, strong run-time capability, and garbage collection) and usefulness (freely-available runtime, available libraries, strong platform support). * Aesthetic/romantic appeal: CommonLisp. Most of what I like in Python was done bignum years ago in CL. CL is like the game of Go: a few small, tight rules create a universe of possibilities--"an afternoon to learn, a lifetime to master". * Paying the bills: CeePlusPlus. ---- '''IanOsgood''' * Hacking and OpenSource: ForthLanguage and CeeLanguage (and once upon a time, AssemblyLanguage and TurboPascal) * Perversity: SnuspLanguage, FalseLanguage * Making a living: JavaLanguage, CeePlusPlus, ObjectiveCee * I wish I could reverse time to avoid learning all those horrible '80s MicroComputer BASIC variants. ---- ---- '''GarethMcCaughan''' * CommonLisp (overall favourite: powerful, flexible, about as multi-paradigm as they come, good both for writing fast code and for writing code fast. Ahh, macros!) * PythonLanguage (for quick hacks, things other people need to be able to read, and programs that can make good use of its extensive and sometimes well designed standard library. Produces cleaner-looking, more maintainable code than any other language I know of. Of course that's a function of the author more than of the language; what I mean is that ''my'' Python code is cleaner-looking and more maintainable than my code in other languages.) * CeePlusPlus (when writing fast code is much more important than writing code fast, when using other people's libraries written for C++, or when I feel like a bit of pain. Very powerful and flexible, more successful in combining closeness to the machine with a bearable level of abstraction than any other language I know, and there's a huge variety of libraries for it. But oh, the syntax! I swear, some bits of the language seem to have been designed by generating random strings of tokens and assigning a meaning to each that doesn't already have one.) Compare and contrast with LanguagesOfChoice, MainstreamLanguage ---- EttMonster * I'm so smitten with Scheme, still. I look at other languages from time to time. I like Ruby, but Scheme's (almost - it has parens) lack of syntax is so easy on my brain now a days. I'm sad that the lisp world is so fragmented. From time to time I think of switching to Common Lisp but it hasn't happened yet; I don't like it nearly as much. ---- AalbertTorsius * PrologLanguage ''What's to say? I love it. Unfortunately, not many Prolog programmers are required these days.'' * PerlLanguage ''Even though I've hardly used it yet, it seems to be the total opposite of Prolog :)'' ---- RamonLeon * Smalltalk, the one and only, because I want more than just an extensible language, I want the best development environment there is, and nothing else comes close, suprised no one else has mentioned it. ---- '''Jeff Bain''' C and Perl? I'm only in first year University, so I'm really more a n00b than anything, but where I work we use those two, and I've sort of fallen in love with Perl. It's so good for hacking together things, I can't do without. With C, everything is Damn fast, and that's always good. ---- '''CraigPutnam''' *TurboPascal, as the first "real" programming language I learned. *x86 AssemblyLanguage. I learned to program on the family's PC XT, where speed actually mattered. There is a perverse pleasure in manually reducing high-level concepts into machine instructions. Plus it comes in handy for removing annoying copy protection from games (that I own, of course). *JavaLanguage, with which I finally grokked object-orientation, patterns, and unit testing. ----------------------- CategoryProgrammingLanguage