C and UNIX

I know we can shit on C/UNIX forever about X, but lets have a thread where we actually list GOOD things about C/UNIX concepts and paradigms. I'll start.
You will never find a more worldwide supported language than C. Since the birth of the IBM PC, C has been THE standard in technology and the basis of everything modern computers use. The software you using to view this post most likely has been either written in C, or written in a language that is based off C, not to mention using libraries written in it that are required to function.

LISPjew need not apply, infact I foretell that this thread will make him beyond shitter shattered he'll spam the thread. I have only one question to ask him, why the lack of competion?
I've always wondered if this story was true, and who it was who wrotethe find command. In the Oct. 94 issue of Byte they had an article on "UNIXat 25" which said that Dick Haight wrote the find command along with cpio,expr, and a lot of the include files for Version 7 of UNIX. I don't knowwhere to send this message directly to Dick Haight, and I would appreciate itif you would forward it to him, if you are able. If you can't, well then Ihope you liked the story. I got your mail address from "The UNIX HatersHandbook", and would like to add this to your Anti-Forward: Until that frozen day in HELL occurs, and the authors of that book write a better operating system, I'm sticking with UNIX. Sincerely, Dan Bacus [email protected].
Hail to the king, baby.

Attached: 1280px-TORU_docking_system.jpg (171x240 167.29 KB, 9.9K)

Other urls found in this thread:

port70.net/~nsz/c/c99/n1256.html#J.2
en.wikipedia.org/wiki/Category:Programming_languages_with_an_ISO_standard
seas.gwu.edu/~mfeldman/ada-project-summary.html
news.ycombinator.com/item?id=11499676
en.wikipedia.org/wiki/IBM_BASIC
twitter.com/NSFWRedditGif

Yes, let's have a boring thread where we fellate each other over the shitty OS/language that's everywhere.

Wow. Who are you again? A nobody? Thanks. That's good to know.

How can it be shitty if its everywhere? People wouldn't use it if it wasn't shitty.
You seem massively contrarian.

It's really worrying if the only thing you could think of saying is that it's popular, not anything about it that makes it inherently good.
Nobody denies that it's popular. Its popularity is where the trouble starts. C and Unix were fine for a research system on a PDP-11, but it's the current year now and I'd like to write my low-level software in a language with sane error handling conventions and sane strings, and I'd like to use an operating system that doesn't base its filesystem hierarchy around having run out of disk space forty years ago and doesn't rely on ad hoc in-band signaling to pass options to programs.
But inertia is a bitch, and losing compatibility is never worth it in the short term, so here we are. C and Unix are unavoidable, and I will use them, but I'm not going to pretend their flaws are actually good.
Anyway - there are genuinely good things hidden between the flaws, but how come you couldn't think of any? Is popularity the only good thing you know?

Why would you write anything low-level in anything but assembly?

Because I'm a fan of portability, and the extra effort doesn't justify the gains in most cases.

pick one.

Wow. Who are you again? A nobody? Thanks. That's good to know.

How can radio cockrock/rap music be shitty if it's popular? How can excellent old films be forgotten if they're excellent?

Wow. Who are you again? A nobody? Thanks. That's good to know.

Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.
Wow. Who are you again? A nobody? Thanks. That's good to know.

Hello, I'm a LISP weenie and I'd like to say that the UNIX hater does not represent us as a whole.
I very much like C. While I do prefer LISP in many cases, it is THE golden standard for low-level languages and if I ever need something requiring speed, it will be done in C.
There is a reason C and UNIX became so widespread!

C is a nice terse language that gives easy access to both high and low level interaction.

port70.net/~nsz/c/c99/n1256.html#J.2
mmmmmh yeah so terse

One good thing about C is it was made to be portable to almost any system.

Nice try, but you aren't fooling me. I have not yet spoken with one LISP weenie who has actually liked C before. All the ones I've met and talked with have seen the flaws of C and UNIX and hate both of them rightly so.
Just because something's popular, it doesn't mean it's good.

That has nothing to do with terseness.

The undefined behaviour situation is shit, but it's not entirely the language's fault. UB was intended to allow the implementation to take some action appropriate to the hardware, which is a good idea in principle. Of course, that was never enforced, so GCC uses it to delete your code instead.


I don't love C, but Unix is the best we've got right now, and there is still satisfaction to be found in using it as it was designed.

>>>Zig Forums
>>>/ancap/
>>>/liberty/
Because every free market gravitates towards monopolization and faster the less regulated it is, which is the case for software. That is in part due to production in higher numbers being cheaper per unit (in doftware you even have to produce only one copy, the rest is fuplicated for free but you still pretend you worked for them and "deserve" profit), network effects (everything else is in c so it is easier use c too, this would be true for lisp if everything was in lisp) and mindshare/being unwilling to change until there is something not only equal, or better, but MUCH better. For any single actor it is more efficient to keep using c/unix braindamage so that is what they do. That is independent of it OVERALL being more inefficient than everyone moving to something better, but that would not reflect positively on quarter yearly investor reports so the long term benefits get sacrificed for short term profits.

Time to put Linux programmers in death camps to make room for NetBSD and Plan 9 then.

The UNIX weenie belief that C is "only good because it's popular" also means that C becoming less popular will make it less good. This is why UNIX weenies act like they work in the AT&T sales department.


C and C++ are much less portable than all other ISO and ANSI standard languages. C is so unportable that it actually holds back hardware development.
en.wikipedia.org/wiki/Category:Programming_languages_with_an_ISO_standard


This used to be an argument for making better software. UNIX weenies think software that sucks is more acceptable when more people use it, which sucks even more.

This is because of the incompatibility of C and UNIX. UNIX can't use a Ruby library from Python, or even C++ from C++, which sucks. On a compatible OS, popularity doesn't matter at all as long as you have a compiler or interpreter available, because you can share data types and common features between any language.

it *was* nice of British Telecom to force Sun to rename their white pages service to be something other than "yp") ...A crying shame too. After all, even though Sun's "yellowpages" service was really a white pages (name lookup)service, they should have been able to use whateverdeceptive name they wanted. Renaming things for marketposition is really a modern (not just unix) tradition:Build a presentation manager: call it Presentation Manager...Build a personal computer: call it The ibm Personal Computer...Build a machine with an 8-bit byte: Define "byte" to be 8 bits...Build a IO subroutine package: call it DOS (an OS).But the unix weenies have refined it to a high art.Everything must be "open" and a "standard." Why, my companyalready supports at least a dozen "standards!"The latest Sun entry is their new "free" window system.Their salesman called me proudly: all you need to do is sendthem a thousand dollars a copy, plus pay a royalty onprograms which use it, and you can use their new free openstandard window system (called "open look" of course).Hm, maybe I can add cons to C and call the result Lisp...

Where is your proof?

This. Windows master race.

Such as?
How?

That must be the dumbest logic I've ever seen.
Quality is not quantity. In fact, the most used a system is, the most retarded it is, because most people are retards.

Yeah man! Fuck the popular kids! Counter culture. Dude!

Guess what, Skippy. You just spoke to one.

That's not a real pro you absolute retard, it's like saying Windows is good because it gets more support for being popular.

Being able to easily find people to work on your system (having a C language base in this case) is a good thing. Having to find people to work on your more obscure system is a lot more difficult regardless of the premium you add to the average programmer salary. This is the business case of using popular, highly conscious technologies.

its good business to write your crap in electron, it is not good for us

clearly HTML+JS stack is the best programming environment for all computers. It is portable, people can pick it up quick, it doesn't use """"""C strings"""""" and it has garbage collection. It's everything anyone wants. Mutable types, everything you need.

Then you should have no problem ignoring what businesses do with their own business.

FUCKING BASED

Literally where? The only thing that could ever rival against C is C#, which itself is built on C.

Wow. Who are you again? A nobody? Thanks. That's good to know.

Ada/SPARK is better than C for systems programming. Pascal and Lisp are better for end user programs, but an OS written in them would also be very interesting.

Proof.

Read the PDF. Are you the Rust faggot? It's strange to me that we have Rust being hailed as The Next Big Thing when Ada offers C performance with extreme safety. Rust is a perfect example of NIH syndrome. Ada is:
- Low-level
- Highly concurrent
- As fast as C++ for single-threaded applications
- Faster than C++ in multi-threaded situations
- Total memory safety
- No anal case sensitivity
- Helpful compile time errors
- Mature
seas.gwu.edu/~mfeldman/ada-project-summary.html

You don't know what low-level means do you?

If Ada isn't low-level, then neither is Rust.

I agree.

This is relevant:
news.ycombinator.com/item?id=11499676

Rust is a shitty hipster language and nobody likes you.

Arguably. I've rarely ever heard of using Ada besides for legacy systems.
Ditto.
You didn't understand my question? What is over taking C that isn't C based itself already?

What do you mean, exactly? Things that compile to C?

You mean assembly? No one actually used anything high level on IBM PC XT, etc.

Pick one

So you use assembly for everything you do on your PC? Impressive.

Python standard interpreter and it's dependancies are in C.

The reference implementation is in C, but the language itself isn't "c-based", you can implement it in other languages

I'm not sure in which sense Python is overtaking C, but being based on C isn't really significant. It's an implementation detail.
The second most popular implementation of Python is PyPy, which is itself written in a subset of Python through some arcane JIT magic.

This.

BASIC was used quite a bit, even for various commerical games. I know for a fact that Avalon Hill and SSI were fond of it. Pic is just one example, but download a bunch of their early stuff from abandonware sites and you'll see. Some of them are compiled BASIC, but others aren't. Note that they often distributed the files in tokenized form, so you have to open them in GWBASIC.EXE in order to LIST the code. You can then save it with a ,A suffix, if you want the plain ascii version on disk.
Some models of the IBM PC even came with BASIC in ROM.
en.wikipedia.org/wiki/IBM_BASIC

Attached: star-command_03.png (320x200, 1.81K)

It's build on RPython, which is C.

"It's just as fast or faster than C/C++" is one of the oldest lies in CS that people still utter unironically about languages.

PC XT was released in '83. That shit wouldn't run very fast on it.

I had an XT and a C64. It'd run way faster on the XT but non-trivial BASIC wasn't portable due to heavy reliance on directly prodding the hardware so it doesn't matter. Assembly was rare on the XT, I generally only used it for TSRs. Did you know you had to manually park the drive head on an XT's HD to prevent it potentially hitting the platter when losing power? Fun times.

Try those games yourself on a cycle exact emulator like 8086tiny or PCEm. The BASIC games run fine, because they're mostly adventure, strategy, simulation, RPG, puzzle, etc. I don't think they made many action games in BASIC, although there were some simple ones and those worked okay too.

Attached: donkey_3.png (320x200, 1.07K)

u wot m8

You're right, my mistake. I don't think anything is taking over C.

bump because it makes lispjew mad

...

In practice, most developers won't even bother to make their program multi-threaded in C++, because its too much work and the single threaded performance is acceptable to them. It seems pretty clear that a language designed for writing multi-threaded programs will have an edge as time goes on, since multi-core processers are extremely common now and the amount of cores on even the shittiest consumer hardware marketed as new will inevitably increase again.
What C and C++ have are decades of attention and development. Once C and C++ really got popular pretty much all the mainstream effort went into their compilers. What you're referring to is something not inherent in their language standards necessarily, but what GCC/Clang/Visual C++/etc are doing for you after many years of hard work and optimizations.
Why do you think this is impossible for a statically typed, compiled language with manual memory management that isn't C or C++? It seems more like a problem of time, momentum, popularity, and politics. Ada was the military/government language so you'd need security clearance in some niche aerospace company or something to get paid to use it usually, Pascal's much needed language improvements were often proprietary (although Freepascal has pretty much all of the important features today), other powerful compiled languages were not allowed outside of their corporate castles, such as Mesa. Not to mention that even if a compiler was available, it would usually be proprietary and costly.

Because all the modern languages hold you hands at runtime. Rust, for example, has runtime bound checking.

The CPU holds your hand at runtime too.

Going to need a source for that claim. Until you can provide me with a better alternative, I'll stick with C. If you're speaking about Ada, Ada's primary compiler (GNAT) is programmed in C.

I've had enough systems lock up on crash on me from kernel bugs to know that's not true.

If your program can't handle recovering when the CPU is saying that you've commited an error, then you will portentially have buggy software.

How does the CPU know you're running the wrong instructions because you fucked up a pointer offset or whatever? How does it know you entered an (infinite) loop that has no break? How does it know you toggled wrong registers in some hardware peripheral? Etc...

My point is that the CPU can trap things like divide by zero, illega instruction, illegal opcode, etc/

That's not hand-holding, that's it having literally no idea how to proceed and halting.

Let's go back to your original example.
Rust doing bounds checking is considered hand holding
A processor doing bounds checking is not considered hand holding. It's just stopping because it doesn't know how to proceed.

I always wondered why this was the vernacular used in technology documentation. There aren't any laws forbidding them, or are there...

Who thought it would be a good idea to send Sean Penn up to the ISS?

But C/UNIX are shit and show that software developer's favor shit.

But you are shit and your post shows you eat shit.

Not my example, different user. The processor isn't hand-holding, we access memory that is out of bounds all the time on a modern OS and rely on the processor's ability to quickly and atomically detect that and fault to implement paging, memory mapped IO, etc.. Doing that purely in software would be incredibly slow.

Those are functions of specific CPUs, not all CPUs. If you start writing code for embedded stuff on Z80, you're not going to have those. Even the 68000 doesn't have an MMU. And those chips are much less buggy and botnet than modern shits, so there. :-)
Of course you can get a 68020 if you really need MMU, but those chips are still too slow for running modern bloated shit. People have trapped themselves in the cianigger Intel world and think some out of bounds hardware features matter. HAHAHAHAHAHAHAHAHAHAHAHAHAHAH!!!!!!

Attached: zany_golf_01.jpg (713x1053, 186.2K)

No latency/throughput added to runtime without errors, though. Unless you can prove that they add some cycles just for that.

and bounds checking is a feature for specific languages, not all programming languges.

If your cpu allowed for bounds checking at a hardware level adding that functionality to a high level language doesn't waste any extra cycles. "Holding your hand", doesn't need to cost cycles.

What a genius.

It does not slow down hardware. It just takes more space on the die. The amount of transistors that we can fit on a single die increases exponentially.

It does slow it down. The more transistors you add, the longer each cycle has to be. Though, in "modern" segmented CPUs, it wouldn't matter much, as checking against bounds wouldn't increase the time of the longest execution phase, which is what determines the CPU period in the first place.

What's the best programming language?

I mean, I don't know anything about tech but I have this idea in my mind that a lot of tech is designed based on what sells well rather than what's actually "best" and I see Zig Forums as purists of sorts. If Zig Forums could become some kind of Global Dictator that never needs to fear being overthrown, what would they do?

Any person who ever tries to sell you any language as the best programming language is either a nodev or a liar. Choose your language based on your needs.
There is, however, a worst language (besides esolangs), and its name is PHP, although recent versions were a step in the right direction.

Is Visual Basic better than PHP? Or is it an esolang?

It certainly looks better at doing what it's designed for.

That's nice to know but I was hoping to know what the best programming language just out of curiosity. Like, right now, you seem to be telling me that there is no best language because each one has their own pros and cons depending on what you intend to do with them. If there isn't already a perfect language, is that because such a thing can't exist? If there must be pros and cons then what would be the best language "generally"?

What's the best vehicle? What's the best food? What's the best animal?
That's basically what you're asking. If you want to narrow things down into specific problem or scenario, then maybe you can actually get some useful answers. Otherwise, well just pick something at random, or if you're a pleb pick the most popular thing so you don't have to think too much.

Generally speaking, C++ and Python would be the closest there is to being the best languages, but there's plenty of cases when other languages win. If you're going to add scripting to an application, use Lua, if you're going to solve mathematical problems, use Lisp, if you're going to automate administration tasks, use Bash, if you're going to write a dynamic website, there are unfortunately not many options better than PHP (which still sucks, mind you). If you're going to write a driver, use C. If you're going to write a business application, use C# or Java.
Basically what said. You wouldn't buy a pickup truck if you're going to tour around cities, but you wouldn't buy a Smart if you're planning to go through bumpy forest roads.

Oh, I see. When one thinks of the best way to move across the ground, something with round wheels makes more sense than something with square wheels. In that same way, I thought there would be a programming language that's "naturally superior" to all others and that if there isn't, it must be due to external factors (i.e. the truly, most superior programming language doesn't work too well in our current reality because that language isn't compatible with currently available hardware which in turn is because the hardware isn't designed with that language in mind because the Tech Industry was built off of "such and such" practises and those practises are too deeply ingrained to uproot and profits need to be made and blah blah...)


Mhm. Alright. Thanks.

I'm going to play devils advocate and claim that, by your own words, you are a nodev or liar.
If you define C++ and Python as "closest to being the best language", you are still selling them as "best language".
I mostly agree with the rest of your post though.

C++. It's the most useful in general. I do everything in C++, even web development, even front-end web development. The C++ code I wrote 20 years ago I can still reuse anywhere today.

See, you just defined a physical problem, and picked a solution that works well. You didn't do that first step with any programming problem. A modern scripting language that's fine and dandy for solving typical sysadmin automation problems on modern Unix-like OS isn't going to get you anywhere in a small embedded system scenario. If you want to do a lot of heavy computations, you might use something like Fortran, but that's pretty shit for making games with. And so on.

Don't listen to them. It's called HolyC!
See? It's a holy godgiven language running on every CPU!
If the tasked can be finished and in the most optimal way doesn't depend on the language any longer. ONLY ON YOU

Managed languages are the future. Hardware support for garbage collection will make a comeback. Screencap this.

Hey midget, how's Z-Lang going?

But we don't need GC anymore. Rust has proven it on paper and in practice. It's ancient history, man.

That sounds great.


Well, I guess the reason why I looked forward to asking the question was because I did want some kind of feedback on the idea that the Zig Forums industry developed "unnaturally" or it developed according to profit rather than tech and so programming languages are "deformed" because they're adapted to the present tech rather than the ideal tech that would arise in a society where hardware is developed according to what makes the hardware best.
Now that I think about it though, since the US military would've been interested in the best possible tech for their own uses, the tech must be okay and so programming languages must be okay as well.


Can you explain why TempleOS got so much attention again?

The people here love Terry's character and they love the fact that he wrote an operating system that's more than a trivial academic toy. TempleOS was designed to be a programmer's toy in the same character as the Commodore 64 computer.

Attached: ClipboardImage.png (1080x793, 1.22M)

Generally speaking, LISP is the closest there is to being the best language, but there's plenty of cases when other languages win. If you're going to add scripting to an application, use LISP, if you're going to solve mathematical problems, use LISP, if you're going to automate administration tasks, use LISP, if you're going to write a dynamic website, there are unfortunately not many options better than LISP. If you're going to write a driver, use LISP. If you're going to write a business application, use LISP.