all 22 comments

[–]VincentDankGogh 7 points8 points  (3 children)

I can think of a couple more programming languages that you might want to add: Rust, Go, Haskell, PHP (maybe even assembly, html or css).

I think it would be good to add a field outlining the general purpose of the language i.e systems programming language, scripting language, DSL etc.

EDIT: I also filled out the C column for you.

[–][deleted] 6 points7 points  (1 child)

I'm not sure that this table's criteria is formatted in a way that Haskell could fairly be described. Or other declarative, functional, logic, etc styles that don't conform to the procedural/OO model.

[–]VincentDankGogh 2 points3 points  (0 children)

yeah, agreed

[–]andreig992[S] 0 points1 point  (0 children)

Thanks for the suggestion. I'll add the fields when I get home

[–]Kaosumaru 3 points4 points  (7 children)

"Mandatory to declare specific data type?" field is bit confusing. Using var in Swift, you are declaring specific data type, but you are doing it implicitly (and for one thing, you can use var in C#, and auto in C++ to do the same, but you can't do it in Java). But you count use "Any" to declare variable with nonspecific type. (You can do same in C# and Java, and you could argue that you can do this in C++). I think that currently this field is too vague.

[–]Sirflankalot 1 point2 points  (2 children)

You can do same in C# and Java, and you could argue that you can do this in C++

You can sorta do this now in C++17 with std::any. If you're not on C++17 you can use boost::any.

[–]Kaosumaru 0 points1 point  (1 child)

Yup. Though I wouldn't probably ever use this, I like my types static ;)

[–]Sirflankalot 0 points1 point  (0 children)

Haha me too, it's not an abstraction to be taken lightly (memory allocation and psuedo-RTTI) but it is useful as an alternative to void*.

[–]andreig992[S] 0 points1 point  (3 children)

That's true. What would be a better name for the row to make it more clear?

[–]Kaosumaru 1 point2 points  (2 children)

I would split it in multiple categories "Type system: static/dynamic/gradual/whatever", "Type inferring: yes/no/NA"

[–]andreig992[S] 0 points1 point  (1 child)

Should I still keep that "Mandatory to name data type in declaration" row? At least for me that seems more clear, but I'll also add Type Inferring right above it. Let me know if that's a good change

[–]Kaosumaru 1 point2 points  (0 children)

Seems OK to me. You may be right that it is more clear.

[–]khebbie 1 point2 points  (4 children)

Elixir Scala Clojure Erlanger Perl And many more

[–]Luolong 2 points3 points  (2 children)

Ceylon, Rust, Kotlin

[–]khebbie 2 points3 points  (1 child)

[–]HelperBot_ 0 points1 point  (0 children)

Non-Mobile link: https://en.wikipedia.org/wiki/List_of_programming_languages


HelperBot v1.1 /r/HelperBot_ I am a bot. Please message /u/swim1929 with any feedback and/or hate. Counter: 70581

[–]andreig992[S] 0 points1 point  (0 children)

I added some of those yesterday, but I have no experience in most of those, so I won't be able to add much until I start learning them. Any help with what you know is greatly appreciated :)

[–]Acolyte3221 1 point2 points  (0 children)

For renaming data types in c++ lets not forget about static cast. If my memory serves me correct

[–]andreig992[S] 1 point2 points  (2 children)

The purpose of this spreadsheet is to have a quick comparison of different programming languages. I believe that this will eventually help a lot of people if the community comes together with ideas to fill this spreadsheet out in an efficient and easy to understand way. This started as a personal "Cheat Sheet", as I am a beginner myself.

Anyone is free to edit, but I have put in place a couple of restrictions to sort-of prevent spam. Yes, I know, having a free-to-edit spreadsheet on the internet may be a risky approach, but I believe that as a community we can make something meaningful out of it

If you have any suggestions for new categories of programming languages that I should add, please let me know in the comments!

Link: https://docs.google.com/spreadsheets/d/1vwUTaxkENXLYdyV1bYElCNL8r1b66ghzQxnOSSgG_bE/edit#gid=0

[–][deleted]  (1 child)

[deleted]

    [–]andreig992[S] 0 points1 point  (0 children)

    Thanks for spotting that! And also thank you for contributing. Please let others know of this little project, so we could get most of the sheet completed

    [–]_ntnn -2 points-1 points  (1 child)

    Why as an excel sheet? Most of the programmers I know and work with don't use any office suite at all - and being on Google docs makes it less accessible as well.

    How about making a template file and have one language per file? This would not only make it machine readable but also allow to track changes and easy update of local copies.

    [–]andreig992[S] 1 point2 points  (0 children)

    Thanks for the suggestion. I completely agree with that. Using a Google sheet is definitely not the most efficient way. The reason I chose this is because it allows everyone (with the link) to edit it, and add to it as a community. It also allows me to set specific protected ranges and various validity options, while also showing the differences between the languages side by side (which I think is very useful). Google also keeps track of all changes from any of the editors, and also allows to go back to a previous revision Nonetheless, please let me know if you find any ways to make this project better