Author Topic: Theory about popularity of languages  (Read 45320 times)

koiwai

  • Rogueliker
  • ***
  • Posts: 99
  • Karma: +0/-0
    • View Profile
Re: Theory about popularity of languages
« Reply #15 on: September 16, 2014, 08:41:20 AM »
Some (or more like most) languages have roots in hacky environments like unix/linux with complex setup rituals only few people are willing to withstand, and of course pesky GPL issues making developers not sure how they can release their programs (or even make profit).

As far as I know, all major programming languages with open source (e.g. GPL) implementations distribute their standard libraries under very permissive licenses: MIT, BSD, or LGPL (with an exception for static linking). So, if your executable statically links the code of the standard library (which is probably the case when you build an executable), you are free to do anything you want with it, particularly, you can sell it, and you don't have to give your code to anybody.

So, I've never heard of a well known open sourced language that has a bad restrictive license.

GCC - You are given a so called "GCC RUNTIME LIBRARY EXCEPTION" (https://www.gnu.org/licenses/gcc-exception-3.1-faq.html) to link GCC library code with your code and do whatever you want with it (unless you are doing really funny things). Yes, Stallman is a messy political guy, but the license basically lets you do anything you want.
From their FAQ:
Q: I am using a standard release of GCC (such as one provided by the FSF, or with my operating system) to compile GPL-incompatible software. How does this change affect me?
A: It should not affect you at all. Unless you've configured GCC to output intermediate representation—which is rare—the new exception is designed to ensure that you have no license obligations when you do this, just as the old exceptions were.
Rust - everything is under very permissive Apache / MIT license.
Go - evrything is under very permissive BSD-style license.
D - the standard library Phobos (as well as the DMD compiler) is released under BSD-style Boost license.
OCaml - the library is under LGPL (with an exception allowing static linking).
Haskell (GHC) - everything is under very permissive (2-clause BSD)-like license.
Haxe - the library is under 2-clause BSD license.
FreePascal - the library is under LGPL (with an exception allowing static linking).

(I am taking only compiled languages, so no Python, Ruby, Erlang)

Other libraries, particularly, ncurses, SDL, and OpenGL bindings are usually also under LGPL, BSD, or MIT license.

Edit: added Haxe to the list.
Edit 2: Thanks to Krice, updated the text. The LGPL-ed libraries I mention give an additional exception for static linking, even though it is not allowed by the vanilla LGPL.
« Last Edit: September 16, 2014, 03:52:13 PM by koiwai »

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: Theory about popularity of languages
« Reply #16 on: September 16, 2014, 09:35:19 AM »
As far as I know, all major programming languages with open source (i.e. GPL) implementations distribute their standard libraries under very permissive licenses: LGPL, MIT, or BSD. So, if your executable statically links the code of the standard library (which is probably the case when you build an executable), you are free to do anything you want with it

LGPL is not permissive. It was invented as a hack in the license, because GPL was simply impossible in some cases. LGPL allows distribution of executable without source code if you dynamically link it (which means LGPL licensed dll's are separate from the .exe). Not statically, as you wrongly say.

Quote
Other libraries, particularly, ncurses, SDL, and OpenGL bindings are usually also under LGPL, BSD, or MIT license.

SDL2 is no longer LGPL, because it makes commercial development easier I suppose in cases you have to statically link it.

GPL also may be a compelling reason why developers avoid some languages (available free tools are GPL only).
« Last Edit: September 16, 2014, 09:36:53 AM by Krice »

koiwai

  • Rogueliker
  • ***
  • Posts: 99
  • Karma: +0/-0
    • View Profile
Re: Theory about popularity of languages
« Reply #17 on: September 16, 2014, 10:08:01 AM »
As far as I know, all major programming languages with open source (i.e. GPL) implementations distribute their standard libraries under very permissive licenses: LGPL, MIT, or BSD. So, if your executable statically links the code of the standard library (which is probably the case when you build an executable), you are free to do anything you want with it

LGPL is not permissive. It was invented as a hack in the license, because GPL was simply impossible in some cases. LGPL allows distribution of executable without source code if you dynamically link it (which means LGPL licensed dll's are separate from the .exe). Not statically, as you wrongly say.


Great! Thanks for the correction. Both languages that I refered to as using LGPL, are in fact using LGPL with an exception allowing static linking.

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: Theory about popularity of languages
« Reply #18 on: September 16, 2014, 10:23:45 AM »
Both languages that I refered to as using LGPL, are in fact using LGPL with an exception allowing static linking.

Compiler's so called standard libraries are like that, because they are internal part of the program anyway. I don't know if you even can dynamically link parts of standard library. Anyway if you could it would be ridiculous to distribute all required library dll's with the executable. Imagine all programs doing the same with their separate sets of library files. Well, actually some programs do exactly that. Blender 3D for example is shipped with the entire Python language, because those idiots haven't been able to create backwards standard. I guess Python is in constant change, because it sucks so much.

AgingMinotaur

  • Rogueliker
  • ***
  • Posts: 805
  • Karma: +2/-0
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Theory about popularity of languages
« Reply #19 on: September 16, 2014, 11:53:19 AM »
I know for a fact that you're talking out of your ass when making comments about for instance Linux, so why even bother
Actually I'm not. Many RL developers are biased towards open source/linux ideology, so they probably can't see the big picture. I don't know for sure if there is something in this, but it looks like good IDE will attract more developers compared to "linux-like" installation procedures and using text editor for writing the source code.
What I meant was (and please correct me if I'm wrong) that it doesn't actually seem like you ever used Linux. I remember you once complained about how hard it was to install software in Linux. You probably read that somewhere, but your apparent qualms about "'linux-like' installation" are comparable to fearing Windows because DOS is clunky – it might have been true back in the day (see "dependency hell"), but it's been a non-issue for at least a decade (today it's done with a couple of mouse clicks or a single terminal command).

To each his own, you know. I just think someone who never used a particular OS shouldn't educate others about its merits and flaws. That said, you're well entitled to piss all over the GPL if you so please, and you're probably right that IDEs have a much broader appeal than terminal+editor (but I didn't know you were such a sucker for the mainstream, Krice ;)).

As always,
Minotauros
« Last Edit: September 16, 2014, 11:55:24 AM by AgingMinotaur »
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

Eben

  • Rogueliker
  • ***
  • Posts: 339
  • Karma: +0/-0
  • Controversializer
    • View Profile
    • SquidPony!
Re: Theory about popularity of languages
« Reply #20 on: September 16, 2014, 08:22:58 PM »
On a related note – and probably making a fool of myself in light of my previous comments  8) I'm considering starting with Java to write something for Android devices. Would Eclipse IDE be a good place to start? I don't know Java or C/C++ from before, the only language I've learned to any noticeable extent being Python.

I use Eclipse; it's OK.  There are some things I don't like about it but that's mainly because I'm more used to Visual Studio, if I had used it first I probably wouldn't be too bothered.  I've also tried out NetBeans in the past for Java, but settled on Eclipse I think mainly because it seemed more stable and the android emulation tools were slightly more advanced, although this was a couple of years ago so that opinion may be out of date.

Eclipse used to be the clear winner against NetBeans for Android development, but that's mostly changed these days. Mostly because the Eclipse team hasn't really been improving their support as well as the NetBeans team. However if you want to do anything graphical on android, use Unity with JavaScript and you'll be up and running quickly.

I haven't used IntelliJ IDEA since I don't want to pay for something that is unlikely to offer more than NetBeans does. I say that based on NetBeans giving me the same feature set as Visual Studio Ultimate, and it's hard for me to imagine any IDE giving more features than VSU.

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: Theory about popularity of languages
« Reply #21 on: September 16, 2014, 09:37:35 PM »
I just think someone who never used a particular OS shouldn't educate others about its merits and flaws.

I can process information. I don't need to have personal experience. Linux has flaws, it's not perfect and the problems it has are well known. If it was better than let's say Windows 7 then why the heck everyone is not using it? In desktop use Linux is in like 0.1% of computers.

koiwai

  • Rogueliker
  • ***
  • Posts: 99
  • Karma: +0/-0
    • View Profile
Re: Theory about popularity of languages
« Reply #22 on: September 16, 2014, 10:40:59 PM »
Linux is a great OS, I switched from Windows about 7 years ago, first to Ubuntu, then to Arch Linux. Even 7 years ago in was a superb system. Never had real problems with it, installed it on 4 laptops and 2 desktops. I think, it is very convenient as a programming environment, especially if you choose a good desktop envoronment that does not get in the way (choose the one that works the best for you).

Modern graphical interfaces of OSX and Windows are simply not designed for developers, so they install IDEs, tmux or something similar to mitigate the issue. Linux on the other hand (especially with a good desktop environement) is already a development environment.

Another bad thing about modern Windows and OSX. They try to hide the real paths of the files and substitute them with GUI dialogs and conceptual "Documents", "Pictures", etc. In this respect, OSX's Finder is simply an insult to the user. I'm not an old unix hacker, but I value the simplicity of the system I am working on, and Linux fits my needs much better than Win or Mac.

Cfyz

  • Rogueliker
  • ***
  • Posts: 194
  • Karma: +0/-0
    • View Profile
    • Email
Re: Theory about popularity of languages
« Reply #23 on: September 16, 2014, 10:48:38 PM »
Quote from: Eben
I haven't used IntelliJ IDEA since I don't want to pay for something that is unlikely to offer more than NetBeans does.
There is a free Community Edition of IDEA which is similar to Express Edition of MSVS. As far as I can tell, commercial version of IDEA targets enterprise audience and its additional features are of little use to indie developer.

Quote from: koiwai
Modern graphical interfaces of OSX and Windows are simply not designed for developers, so they install IDEs <...> They try to hide the real paths of the files and substitute them with GUI dialogs and conceptual "Documents", "Pictures", etc.
Quite a few developers at our company use Macs. They say it combines the power of usual *nix environment with overall stability and comfort in occasional office tasks.

koiwai

  • Rogueliker
  • ***
  • Posts: 99
  • Karma: +0/-0
    • View Profile
Re: Theory about popularity of languages
« Reply #24 on: September 16, 2014, 11:50:00 PM »
Quote from: koiwai
Modern graphical interfaces of OSX and Windows are simply not designed for developers, so they install IDEs <...> They try to hide the real paths of the files and substitute them with GUI dialogs and conceptual "Documents", "Pictures", etc.
Quite a few developers at our company use Macs. They say it combines the power of usual *nix environment with overall stability and comfort in occasional office tasks.
Well, OSX has a complete unix environment in the terminal. Like cp, rm, vi, awk, ed, bash, and other unix stuff. I was talking about the graphical interface, the way they handle windows, the dock, workspaces. When the windows you open are just text editors and terminals OSX is not that great. This is why many people like to install tmux on Mac, for example.

OSX is good at what it is doing, but I think it's GUI is just not designed for developers, and you need to install some extra soft, at least Sublime text editor, or tmux, or something to handle your projects. Choosing an OS is a matter of personal tastes.
« Last Edit: September 17, 2014, 12:12:35 AM by koiwai »

hilbert90

  • Newcomer
  • Posts: 10
  • Karma: +0/-0
    • View Profile
    • Email
Re: Theory about popularity of languages
« Reply #25 on: September 17, 2014, 07:01:27 PM »
I agree with koiwai. It boggles my mind that people can program in Windows. The text editors (Sublime in particular) have always just known where everything is located with no extra setup (python, ruby, C, etc), so I can just Ctr+b to do a build in Linux. When I was making GradHack, I wanted to do a test build on Windows and couldn't figure out how to run a program with python at all. I "downloaded" python (hurray for package management like apt for Debian which actually puts things in the right places) and "installed" it.

Typing "python gradhack.py" did nothing. I downloaded Sublime for Windows in the hopes that this amazing text editor would find python and allow me to build from within it. Didn't work either. To this day, I still haven't figure out how to run a python program in Windows. And lets not even bring up git. "sudo apt-get install git" Done. You can use git from anywhere in your system. I just wanted to git clone my project to Windows and ended up going to github to click to download it.

I know that people that professionally use Windows as development environments probably will scoff at this, but as an amateur, Linux is so easy and Windows makes you fight with it at every step.

Aukustus

  • Rogueliker
  • ***
  • Posts: 440
  • Karma: +0/-0
    • View Profile
    • The Temple of Torment
Re: Theory about popularity of languages
« Reply #26 on: September 17, 2014, 07:37:05 PM »
I still haven't figure out how to run a python program in Windows.

Double clicking .py works if there is Python installed. Or setting up Notepad++ with simple debug.bat set as macro combined to shortcut. I run my Python projects with ctrl+f5 from Notepad++.

Building executable is easy with py2exe installed on Windows. Simple script in compiler.py in project's folder and double clicking that makes exe from my projects.

That's simple Python development on Windows.

Edit: I might add that on Linux I have really trouble making stand-alone projects that do not need installed Python, I've never managed to do that. On Windows it is as I described.

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: Theory about popularity of languages
« Reply #27 on: September 17, 2014, 07:49:39 PM »
so I can just Ctr+b to do a build in Linux.

In Visual Studio you need to press only one key: F5. So it's 50% easier than in linux!

hilbert90

  • Newcomer
  • Posts: 10
  • Karma: +0/-0
    • View Profile
    • Email
Re: Theory about popularity of languages
« Reply #28 on: September 17, 2014, 08:06:04 PM »
In Visual Studio you need to press only one key: F5. So it's 50% easier than in linux!

You seem to miss the crucial point: Only if it works! (Which it won't because Visual Studio won't know where python is located.)

Maybe I should point out that this was on Windows 8.1. Is that maybe the difference? I've tried double clicking, and it didn't work (but I know python is installed because I can open IDLE and type things like 2+3 and get the right answer). I'm kind of interested in trying this again now that I've started. This just further proves my point.

Eben

  • Rogueliker
  • ***
  • Posts: 339
  • Karma: +0/-0
  • Controversializer
    • View Profile
    • SquidPony!
Re: Theory about popularity of languages
« Reply #29 on: September 17, 2014, 08:11:29 PM »
Quote from: Eben
I haven't used IntelliJ IDEA since I don't want to pay for something that is unlikely to offer more than NetBeans does.
There is a free Community Edition of IDEA which is similar to Express Edition of MSVS. As far as I can tell, commercial version of IDEA targets enterprise audience and its additional features are of little use to indie developer.
I've seen that and need to try it just to see what feature set it has. I should also make a lib setup video for SquidLib like I did for Eclipse and NetBeans. The part of it that I'm skeptical about is it providing enterprise support at that cost that NetBeans doesn't provide for free. Although as many enterprise things, it might be the phone-in live person support that's the selling point.

Quote from: koiwai
Modern graphical interfaces of OSX and Windows are simply not designed for developers, so they install IDEs <...> They try to hide the real paths of the files and substitute them with GUI dialogs and conceptual "Documents", "Pictures", etc.
It's true that Windows and OSX are designed for general use rather than development use, but even on linux a good IDE makes a huge difference to working on any non-trivial project.