Mastering a language

Let's be honest.
What's the most versatile language in the current time?

Python may be comfy for small projects, but too slow for anything non-web related.
Rust is literally a meme backed by sjw cucks.
C lacks of OOP, which restricts the applications...

Is C++ the only language worth to be mastered?

Other urls found in this thread:

youtube.com/watch?v=QM1iUe6IofM
en.wikipedia.org/wiki/Rekursiv
simson.net/ref/ugh.pdf
xahlee.info/UnixResource_dir/writ/language_to_hate.html
twitter.com/AnonBabble

lisp

I get it OP, you have mastered none of those languages. Or any language at all, for that matter.

Versatile, you say? Boy, do I have the language for you, even though you will hate the answer: JavaScript. There is no other answer. Lua comes close.

Chill mate, no need to be that cocky.
There is a reason if this thread is asking a question and not making a statement.

I honestly don't see how JS could be considered useful besides web development and scripting for game engines.

Ada. It's fast, stable, portable, procedural, object oriented, and the catch-errors-ASAP design makes for high productivity. It has all sorts of features that let it work well anywhere from embedded through to huge distributed projects. It can't do client side web scripting of course, unless you compile to a JVM applet, but client side web scripting is cancer anyway. It also avoids the template hell that C++ has. Really comfy.

It doesn't???


I agree, JS is actually fine, and I've also appreciated programming in Lua.

It depends what you mean by versitile. Versitile could mean multi platform, most features, most simple to use, quickest to write etc.

You sound like you want features. If so take your pick from C++, Java, C#, Python or JavaScript based on your needs. All of these languages come stocked to the brim with various features that you probably don't need.

Also
Python can be compiled which makes it much faster.
I don't see how the political views of the developers affects the actual use of the language.
C can be made OO. I disagree that it restricts the applications. OOP is not magic it just makes certain things easier.
You can (not) master C++. The language is huge with a everything and the kitchen sink type mentality and it is being added to all the time.

There are many simple languages out there that excel at specific things. They can realistically be mastered relatively quickly. I suggest that you use a language suited for the task at hand rather than circle jerk about "the best one" on Swahili Lithography boards.

stop reading here

How do you master a language anyway? How do you know you have mastered it?

This! There is no "best language" because what's best always depends on the requirements you have. And those requirements might not even be technical in nature; no matter how great a language is, if you cannot find anyone who knows it you will not be writing a team-based project in it.

When you can complete a project without having to refer to the manual once

ok, so a practical step would be to not use an IDE but a text editor without auto completion instead to incentivize your brain to memorize?

**To be honest I don't think there's such thing as 'mastering' a language, just like how an artist can't 'master' a brush or a writer 'master' a pen.

Javascript is like c in the sense that is has a fucking intepreter for nearly every webbrowser out there. It is so simple pajeets and dindus can use it even if horribly. It runs on anything with a webbrowser so your code is as portable as someone being a normiefag can use it and not understand it.

C itself has a standard library that has been ported to nearly every proccessing architecture in exisistence. It is 'fast' being fairly close abstractions of the assembly language below it. And it just works if you don't fuck with memory management or endiness.

If your debating the 'worth' of a language by how many platforms it runs on there is your debate.

Also the right tool for the right job applies to this whole thread. sage because op is a faggot for dissing rust and c for the wrong reasons.

Then how do you get better in the most efficient way possible?

Better at what? Programming? Keep solving problems I guess.

By studying and practice, just like any other skill in life.

You know that you mastered a language when you know limits and pitfalls of language and how to work around them.

How can you claim to have mastered something when you are bound by the same constraints as a novice

Fuck off Pajeet.

you've mastered a language when you know exactly what to google to get to the correct stackoverflow page in one search.

This man is a master, you would do well to remember his wise words

I'm legitimately curious, how does the lack of OOP restrict applications?

Every system has some constraints. If you master some technology that does not mean that constraints of that technology magically disappear.

OOP maps really well to certain applications, notably GUIs and a lot of video games.
You actually can do OOP in C, it just doesn't have any language features that are designed for it. You have to roll your own. It's a pain, but possible.

Words of a novice, your kungfu is weak and you continue to make excuses. Get out of my sight, you disgust me.

Silly JS kid, you cannot use same programming language everywhere.

Your mind is as feeble as your kungfu, stop trying to taint my mind with your foolishness.

Well, you asked for versatile, not optimal. JS is only optimal for client side web development, but thing is, it is powerful enough to do pretty much everything but low level hardware fuckery or extremely tight time critical loops. It can do pretty much everything, and it can do it alright. It's not even a bad scripting language per se when you get used to its quirks and go balls to the wall with its powerful closures and hashmaps.

If you are finding the most optimal language, then give up, because that may only be considered judging on a project by project basis.

nigger you're just listing things EVERY general purpose language can do. Versitile just means it's not super specific like R or Matlab. Though I'm sure so me sick freak has made a web framework in those, too.

C/C++ is prolly the most versatile for software dev
Java is prolly best for mobile apps because muh androyd

Lua and Rust are meme languages, both will be gone in 5 years

good luck with that.
most people who code at all like to say that "HTML is easy", but back when I was in college ~15 years ago, the complete O'Really HTML reference book was big and about 650 pages thick.
only a true autist could reasonably claim to master any coding language.... or HTML...

-------

Consider the following:
before Windows, the dominant language to know for getting hired was Cobol, since there were more business computers than any other type, and they usually ran Cobol
after Windows arrived, the dominant language became C/C++, because you couldn't use all the functionality of Windows without using C++
there's the niche languages like ada and fortran and so on, but for job marketability, C/C++ and cobol are the main two asked for, for a looooooong time
and some want Java too, for mobile app work now

when you look in the want ads, what do you see?
where I am most jobs (from local & non-web companies) want C/C++, MS Windows, MS Office back-end and databases, databases, databases
almost no jobs ask for anything Linux-related

Lisp; Common Lisp or Racket

Are you aware that Lua is more than two decades old?

Mostly C#, PHP and Ruby (on Rails).

Javascript. Why? Employment.

You said that as if you could run Ruby on a web browser. Well, you technically can, but it won't be alright; it will be either extremely specific, or abysmal. That's the point: people are preparing JS to be the ultimate jack of all trades master of one language, and it won't be outstanding, nor it will be terrible. It will be alright.

dayumm i must have mastered 10-20 languages then. in all seriousness, nobody truly mastered any modern PL, not even something like Java, which goes to hell once you try and understand its type inference (yes it has this, contrary to popular discussion), capture conversion, bounds, and other bullshit that pops up when you mix subtyping with generics, and the Java Memory Model

this could be.
my point here is,,,,,, to look in your local job adverts to see what to learn to get hired.
just because Rust is kewl this year in silicone valley don't mean shit anywhere else


doesn't matter
who uses it? and for what reason?
when you choose to use a niche language for any business use, you automatically greatly reduce the applicant pool you will get
how many jobs ask for someone who can read and write sanskrit?

It's a fairly small language that can easily be linked into C code, and that is approachable for non-programmers. Among other things, it's used by Minetest, nmap, the NetBSD kernel, nginx, awesomewm, World of Warcraft, and Adobe Photoshop Lightroom.
I've also played a few stand-alone games that were made with it using Love2D, and I've embedded it into one of my own projects when I needed a safe way to execute user-supplied code.
Lua has carved out a good niche as an embedded scripting language, which is what it's designed for, which you would know if you knew anything about Lua. You're not arguing about the viability of languages you know nothing about, are you? That would be bad.

Mastering C and C++ is basically memorizing a list of undefined behavior rules and extremely bad and nonsensical syntax. If you do not know all of these things, you are not a master of C.

Did you know "long int long signed" is another way to write "long long signed int" in C? There are a lot of ways to write this one type.

long long
signed long long, long signed long, long long signed
int long long, long int long, long long int
signed int long long, long signed long int, ...

There are more ways to write this one type than there are standard basic types in C.

You can't use it in a typedef.
>test.c:2:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘llint’

C and C++ are full of weird and useless crap like this.

Which is why they should have been retired.

Rustfag detected.

You can have flexibility without weird useless crap, y'know.

pathetic

It's like you don't even want to divorce the mathematical power of computation from the abstractions of your hardware. Open your mind, learn FRACTRAN.
$ cat prime.fractran 17/9178/8519/5123/3829/3377/2995/2377/191/1711/1313/1115/1415/255/1$ ./fractran prime.fractran 2 | grep '2^[^ ]*$'4 = 2^28 = 2^332 = 2^5128 = 2^72048 = 2^118192 = 2^13131072 = 2^17524288 = 2^198388608 = 2^23536870912 = 2^292147483648 = 2^31

Probably Rust, but Java is a good start for beginners as well. :)

funny how much Holla Forums claims to know about technology when they actually know nothing
I recommend the best-seller book on soldering processors and clocks by Ahmed

o‭‌‭‌‭-‌‪o‭‌‭‌‭-‌‪o‭‌‭‌‭-‌‪off to t‭‌‭‌‭-‌‪the c‭‌‭‌‭-‌‪c‭‌‭‌‭-‌‪c‭‌‭‌‭-‌‪chambers you g‭‌‭‌‭-‌‪go!!

No, you're going in the wrong direction. By making your own processor you're reinventing the wheel, not releasing yourself from it.
A FRACTRAN program is a pure mathematical function with a simple description. It is not bound to any particular mode of execution, and is easy to reason about formally, even if restricting yourself to Pythagorean mathematics. An implementation of FRACTRAN as a programming language is just a way to inspect the functions and explore them. It's a purity Haskell programmers can only dream of.
This is a description of FRACTRAN:
- Take a number n and a list r of rational numbers r₁ through rₘ
- set n to be n * rᵢ where i is the lowest number so that n * rᵢ is a natural number
- if i does not exist, stop
- otherwise, yield n and repeat
It is Turing-complete. Pure computation.

polniggers bls go

b8

perl

< not realizing OOP is cancer

It isn't about how many ads but, rather the ratio of ads to job seekers.

For example, there are probably still more COBOL jobs then there are Elm jobs out there but, you have a better chance of getting an Elm job because:

The comparison hold between any two languages where one is significantly older than the other.

...

i don't think so buddy

OOP simplifies tasks because tasks can be contained into self contained objects. These objects live in a world of their own and are not supposed to interact through any means apart from well defined interfaces.

lmfao

Strong arguments, uh?
You must be really good at debates.

You are confusing the word object as humans understand it and the word object as OOP understands it.
There's nothing object-like about OOP.
Read these two actions out and you'll understand what I mean

Without a doubt, the most versatile language is the Nim programming language. Nim is a new (< 10 years old) systems programming language developed by Andreas Rumpf and a few other folks in their spare time. What sets The Nim Programming Language apart from others is that Nim gives you the best of all worlds and the worst of none. Nim gives you:

- Optional Garbage collection
- C and Javascript compiler targets
- Pythonic ident-delimited blocks
- Templates, generics, and all of that other lovely stuff
- REAL Macros instead of C/C++ dogshit preprocessor directives
- Support for procedural, OOP, and even a bit of functional stuff if you're so inclined.
- Sane compiler messages


The only issue is that Nim has a small community. You can help remedy this situation. Become a Nim Programming Language evangelist and spread the good news today!

Any reasonable person would choose to encapsulate functionality by using the module or package facilities that are provided by the language. 30 years from now, when people are once again programming applications in procedural C-style languages, people will look in bafflement on the era from 1990 to 2005 where university students were taught that putting ALL code inside Class statements was the only way to program anything.

Well, I can't help you if you want to make classes to represent Enums, classes to represent types, classes to represent fucking boolean values. That's just insanity. It serves no practical purpose.

...

I don't think I've seen an argument against Rust here that didn't end up being just "SJW" "cucks", "weird syntax", and "too strict".

The only arguments I've seen giving props to rust were: "politics doesnt matter" and "its (((secure)))", which means it has no particular use or advantage over other languages

You know javascript transpilers are a thing right?

how about the offical reason why Rust even exists: It's supposed to be faster than GC'd languages, yet memory-safe.

20 ways to write a single type where the compiler writer chooses the range and what happens on overflow is not flexibility. Choosing the range and overflow behavior yourself is flexibility.

Because Ada was named after a female programmer and they only accept effeminate bay area nu-males.

what CPU can you name is OO?
protip: there are none

What you are finding "easy" is the relative size of pre-existing libraries but actually trying to stick to your retarded OO principles leads to spaghetti.

Here's a little primer:

youtube.com/watch?v=QM1iUe6IofM

I would even say Lua is better than Javascript, since it combines it's arrays into all it's other types, and most Lua code you find tends to be good quality, which you can't say about Javascript.

The only thing I don't like are the 1-indexed arrays, otherwise it's my ideal language.

Who cares about an OO CPU? That's a red herring, it's irrelevant to anything. OO design is about software architecture. It's intended for programmers to read then for computers to compute.

en.wikipedia.org/wiki/Rekursiv
Checkmate, atheists.

You're confused here. We use the OO paradigm to design systems that are easily modeled in this manner. Businesses like OO paradigm because it was marketed as a way for programmers to write reusable and composible code. Universities teach it because students are demanding universities teach what businesses demand in graduates. If I had my way, I'd be demanding classes with programming in either Python, Scheme or C for any classes that are not language and compiler theory.

It is not the OO paradigm's fault if people fail to apply judgement to wrap the most fundamental of data, boolean values, into classes.

Top Kek. Found its destiny as an unattached boat anchor, more or less fits OO.


Holy fuck you know nothing Jon Snow.
You really bought the paradigm that language and hardware can be abstracted.
This coming someone who claims Python is slow? Why is slow Jon Snow? Abstraction Maybe?

Holy fuck got back to JS.

"Programs must be written for people to read, and only incidentally for machines to execute." - some hipster Javascript and Java programmer

Yes, let's use a language that doesn't even have an integer type.

int = number|0

JS only has floats, LARP boy.

By ORing the number with zero he is giving the compiler the hint that it's safe to store the result as an integer. This is the sort of autistic trickery used to make emscripten work.

That's a hack to trick the engine into representing the "Number" type as an integer internally. No one is going to do "| 0" in actual code. I want an integral type that does integral division. You have to do this sort of stupid thing because the Javascript language was a hackjob from Day One. And because we need to preserve backwards compatability, Javascript is always going to be hacky or at the very best, a complicated mess like Typescript.


In my opinion, Dart or Haxe are much better examples of an ECMAscripty-style language that is usable for building applications.

no thanks

this thread is pure cancer. you are all just autistically larping about programming languages.
great thread. i really enjoyed reading through it and i hope we would have more threads like these. maybe we should bring back browser threads where we cirklejerk about muh botnet and muh sjw and muh bloat. god i really miss those threads.

your post is dogshit

There actually are some good posts that bring good points.

Hello OP.

Doesn't |0 work because of type "cohercion" fuckery? Even though |0 is a no-op, it must cast the number to an integer to safely OR them, because code including floating point bitwise ops is usually batshit insane.

C.
Elegance is versatility.

C is neither elegant nor versatile. It's alright for a research language from half a century ago, I guess.

C. It runs on anything, can do anything, inter-operates with anything, and code nearly 50 years old still compiles. People will still be writing in it long after you're dead. The highly skilled choose it every time.

How do I replace sympy by C?

mandarin chinese.

...

And Unix is the most successful operating system. Unix is absolutely a research operating system in origin. And it shows.
C was created for Unix. Unix is ingrained in C, and vice versa.
But whether it's a research language or not, I'm pretty sure it was just in the right place at the right time. Can you tell me something especially innovative or powerful C introduced?

Several hundred million people use a shitty knockoff of the Imperial measurement system but all they've achieved for doing so is a crater on another planet.

I don't get what you mean. sympy and numpy exist primarily because of python's type system shadowing native types and libraries like gnump. At a language level, you don't need a replacement to something that was already acting as a replacement.

C is not the most powerful language. It's a simple language.

Working the way the machine does rather some touchy feely human-first shit. That allowed it to replace reams of assembly and for all software to be written in it. Compare that to fortran and lisp. Could UNIX have been implemented in lisp back then when a gc pass could take 30 minutes?

see

The Unix-Haters' Handbook should be required reading in every computer programming class because it shows that UNIX was bad for its time and didn't introduce the things UNIX fans say it did. All of the great OS design innovations in security, user-friendliness, programmer friendliness, and efficiency have been pushed away by the inferior UNIX design because UNIX had open source code. They taught bad design and stupid hacks to students as the "right way" because it was free.
simson.net/ref/ugh.pdf

C is not powerful, but they are useful because they run everywhere because they were created by people who wanted them to run everywhere. Java, JavaScript and Perl running everywhere were also intentional. Classic Visual Basic only ran on Windows because Microsoft wasn't interested in having it run everywhere. This is what they mean by UNIX and C being viruses. They did not spread because they were good, but because they were bad, and this badness gave people


That's disrespectful to the creators of real research operating systems. Real operating system researchers wanted their work to be more stable, more secure, faster, easier to program, and easier to use than existing systems, and UNIX did none of these things. MULTICS was a real research operating system, and compared to it, UNIX research didn't really do much and wasn't even a "step back" but was crap for any era because professionals wouldn't want to use software full of buffer overflows and nobody would buy the OS because it sucked or fund the research because it was worse than what was already available. So I guess it was research in how bad an operating system can be without getting them fired from Bell Labs.

C didn't introduce anything new (even the null-terminated string was not a C innovation) and is significantly less powerful than other programming languages from the same time period. What it did introduce was an ideology of hatred for anything that makes easier or higher quality programs.
xahlee.info/UnixResource_dir/writ/language_to_hate.html

jesus christ kid, go be dumb somewhere else

*this badness gave people an incentive to improve them.