[ home / rules / faq ] [ overboard / sfw / alt ] [ leftypol / siberia / edu / hobby / tech / games / anime / music / draw / AKM ] [ meta / roulette ] [ cytube / wiki / git ] [ GET / ref / marx / booru / zine ]

/tech/ - Technology

"Technology reveals the active relation of man to nature" - Karl Marx
Name
Options
Subject
Comment
Flag
File
Embed
Password (For file deletion.)

Join our Matrix Chat <=> IRC: #leftypol on Rizon


File: 1697092997754.png (715.9 KB, 764x764, sus.png)

 No.21951

Programming is just something that nobody has ever figured out how to teach well. I'm sure it's possible, but I saw so many people in school just drop out immediately because if you didn't know everything in the 101 courses going right into them you were basically fucked.
I often wonder how there is such a skills shortage over here yet there so many people studying comp sci. Probably there's just no substitute for a few years industrial experience and we should be treating it like a trade and giving people apprenticeships, it resembles a trade way more than anything else it could be.

 No.21952

You just have to grind "what will this program output" type exercises, it's not that complicated. People just generally refuse to do it because they believe that it is the computer's job.

 No.21953

>>21951
I though it was well known that many universities have "filters" at the beginning of the program.

 No.21954

>>21953
and the rest have them at the end!

 No.21958

u can easily teach urself it with resources everywhere online and build up a github portfolio
uni compsci is for rich kids
>I often wonder how there is such a skills shortage over here yet there so many people studying comp sci
there's a recession going on rn which is why tech jobs are becoming more scarce

 No.21959

>>21958
There are still countries where university education is free. Places outside of the USA exist.

 No.21960

>>21959
free for rich kids that can complete primary and secondary education in the first place

 No.21961

>>21960
That's everyone…

 No.21962

>>21960
There are still countries where primary and secondary education are free. Places outside of the USA exist.

 No.21963

It's a trade but it's also an art, a craft. Greeks used to have a word for this, techne.
I can do basic CRUD operations on a corporate database, but I don't know how the underlying data structures are designed in the database codebase. You need that shit to be efficient so it can handle thousands of requests designed by a codemonkey retard like me. A lot of mathematical complexity comes into play.
Get your basics down with something like Python, then write a non-trivial C program, and you will already learn a lot.

 No.21965

>>21961
nah lots of ppl drop out because their families can't support them and they need to start working full time
you just live in a bubble

 No.21966

>>21951
>>21954
>>21963
Software engineering and computer science is just a large and complicated field and it doesn't help that universities suck at teaching in general, some even do horrid shit like "filtering" the less capable students early on.

Some universities teach more of the theoretical aspects of computer science. Others teach more software engineering principles. But in my experience, almost none teach you the core things needed for an entry level job. These are things you need to pick up for yourself.

Bootcamps do a much better job at teaching you programming, for example. Or even udemy courses. It's not that it's hard to teach or whatever. There's just many aspects to the field and universities don't necessarily prepare you for an entry level job.

That said, many of the things you learn in university that aren't particularly useful for an entry level job are useful as you progress into your career.

And further, if you want to be a successful engineer, you'll have to put in some leg work yourself into learning techniques and broadening your horizon. It doesn't mean you'll have to grind or whatever it can be a passive learning experience like reading articles and watching videos every now and then.

Point is, software engineering is a complicated field with a myriad of concepts and practices. College can only get you so far. Programming is just one aspect of software engineering.

This isn't to discourage anyone. Quite the opposite. You will never feel like you "get" software engineering. And if you do, you probably suck lol :P
>t. Senior software engineer.

 No.21967

>>21965
They drop out of compulsory education…?

 No.21968

>>21967
do they hold them at gunpoint unless they go to school or something

 No.21969

>>21952
It would be easier to just give students code to dissect like how most hackers learn how to code, for example teach students why MissingNo exists in Pokemon code how one would avoid such a programming mistake. Built curriculum so students build software your average student would want to code and could easily see how their ability has grown that is how the self-taught coders do it. Western education has the trend of making everything horribly boring and detached from how one would do in the real world.

 No.21970

>>21966
What are those core things that are not taught? I did a "computer engineering" program and I think it prepared students very well.

 No.21971

>>21970
Been a while for me but I wasn't taught how to use a machine code monitor even though every skilled hacker knows how to use one and they are very powerful for debugging as you can peek and poke at the kernel level meaning you can see what is in the CPU registers at any given cycle and set flags for when a CPU register or any address trips a trigger. You had many teenager basement coders in the 80s that knew they way around code monitors yet for some reason the western educational system treat them as far too advanced for newbs.

 No.21972

>>21968
in my country you can actually sue your family if they dont send you to school

 No.21973

WE CONJURE THE SPIRITS OF THE COMPUTER WITH OUR SPELLS

 No.21975

>>21971
>at any given cycle
I don't think that's possible outside simulations. But everything else can be done with gdb, right? I had to write and debug assembly on embedded systems at university, although I don't remember explicit instructions on how to use watchpoints and such. But I don't know how much of a "core" thing it is, do people writing code for managed runtimes would benefit from it.

 No.21976

>>21975
>I don't think that's possible outside simulation
Hardware based debuggers that runs code on its own processor on the card have been able to do that since the 80s as the debugger just halts the CPU running the code by pulling its halt pin while the monitor is running on a different processor.
>But I don't know how much of a "core" thing it is, do people writing code for managed runtimes would benefit from it.
They have become an indictable tool for hackers because it allows to see the state of the memory while doing injections of code to test theories so if DRM triggers they can start rolling back variables to see if they can untrigger the DRM by injecting into its memory space. This also works for debugging as you can see for example if the code is looking at wrong data because a pointer gets messed up (that is MissingNo appears in PokeMon).

 No.21978

>>21976
Did you watch some youtube video about debugging Pokémon with a machine code monitor and became obsessed with it?

 No.21979

>>21970
Programming for a business context. Had to learn that on my own. A ton of practical engineering stuff like RFC or ADRs. Shit like spring planning etc. Software architecture. Git and vcs. Maybe my uni was shit idk.

 No.21980

>>21978
It is an example and for me it was the Super Snapshot for the C64 that was an interrupt based cartridge machine code monitor where with the press of a button on the cart the code that was running stopped and you were taken to the code inspector. With that you can not only strip copy protection but also bug fix old C64 programs oneself if you put in the time to learn c64 assembly (it does translate to assembly for you).

 No.21985

Show me these pokemon videos with code monitoring, sounds interesting.

 No.21986

>>21985
About 6 minutes in

 No.21987

>>21986
Is this what software engineers do all day? No wonder bank transfers still don't process on weekends.

 No.21988

>>21987
How do you think consoles and phones get jailbroken along with DRM cracked and even updates to crush such exploits are undermined quickly by crackers? Such methods of memory analyzation is fundamental for the reverse engineering required for crackers to stay one step ahead of Sony and Microsoft. Also why you can emulate even the PS5, Xbox Series X and Nintendo Switch.

 No.21994

>but I saw so many people in school just drop out immediately because if you didn't know everything in the 101 courses going right into them you were basically fucked
my uni had more people enroll than the following courses could handle so they intentionally got about 25% of the cohort to drop during the first introduction course.

 No.22183

> People have been programming computers for more than 80 years, but there is little agreement on how to design software or even what a good design looks like. As a community, we talk a lot about tools and processes, but hardly at all about design. In this talk I will describe my recent work to identify and communicate a set of software design principles, including a new software design course at Stanford that is taught more like an English writing seminar than a traditional programming class, and a book on software design, which is based on the concepts from the class. I will also present a few of the design principles, such as "classes should be deep" and "define errors out of existence."

 No.23086

>>21966
>You will never feel like you "get" software engineering.
That's called Impostor Syndrome

 No.23094

To learn programming, you need a lot of exercises (and later, larger projects). The best way is to provide a test suite and tell the student to make a program that does x and let the student experiment until the the code passes the test suite. I know that the free Python MOOC at https://www.mooc.fi/en/courses/ and Learning Go With Tests (https://github.com/quii/learn-go-with-tests) follow this teaching style. Websites like Project Euler (https://projecteuler.net/) and Advent Of Code (https://adventofcode.com/) are also great.

>>21986
>>21969
>why MissingNo exists in Pokemon code
There is this YT channel that explains the technical reasons for all sorts of glitches in Pokemon games: https://www.youtube.com/@TheZZAZZGlitch/videos
Then there is a full wiki for Pokemon glitches: https://glitchcity.wiki/wiki/Main_Page

And if you are interested in GameBoy or GB/C (in general), you should read the GB/C homebrew wiki: https://gbdev.gg8.se/wiki/articles/Main_Page
… and The Pandocs: https://gbdev.io/pandocs/

The BGB emulator has the best debugger but unfortunately it's proprietary software (freeware). It's also very accurate emulator. It should also work with WINE on GNU/Linux.

 No.23107

>>21971
I don't think most programmers need to know how to use something like that, or even how to write in a real assembly language. Just generally what machine code looks like and maybe write some assembly for a simple or a made up architecture. If stuff like that was taught at CS courses then it should be as an elective.

 No.23111

File: 1705987010571.gif (1.98 MB, 350x193, duck race.gif)

>>21951
the field changes too fast and is too competitive and it's demoralizing and it's not always made clear in the pedagogy why the student is doing something.
>>21952
A teacher's job isn't to just tell the student to grind exercises. The teacher should be grounding the student's lessons in real world applicability. Supplying not just "what" and "how" but also "why." I find STEM subjects are also easier to learn when grounded in a historical narrative of how certain solutions came about, who discovered/invented those solutions, when and why.

 No.23112

File: 1705987771350.png (3.93 MB, 1536x2032, unknown (3).png)

I'm completely a self-taught programmer and studied philosophy in uni, so I only know from talking to CS majors what they teach in CS classes, but I get the impression that a lot of it is influenced by the tech industry and programming as a profession rather than having anything to do with actually learning how to program. you obviously learn stuff about CS theory, but again from what I've heard it seems to all be very abstract and academic, and it seems like CS degrees pigeonhole students into either being academics or scum wage slaves.

I think if universities just started people off programming in lisp like MIT used to do (before even they switched to Python lmfao) it would go a long way towards students actually understanding programming as a discipline. it's pretty much the platonic form of PL design because there's almost no syntax, just the AST in the form of s-expressions, and if you're exposed to that weirdness from the very start instead of just learning some syntax that is specific to a language, you learn the fundamentals that can be more easily applied to other languages.

it also helps that Common Lisp really lends itself to learning, because it's meant to be used interactively from a REPL where you're constantly compiling new forms into the running CL image. makes it very easy to experiment and 'INSPECT or 'DESCRIBE symbols to pop open the hood and see what's going on. though it also arguably works in opposition to the private interests that influence what CS students learn (http://www.loper-os.org/?p=69).

 No.23113

>>23112
* scrum wage slaves lel

 No.23115

>>23111
Programming is just a skill. If you want to teach engineering and science, that will be different, obviously. But to learn programming, your best teachers are the compiler, the computer and the reference manual.

 No.23117

>>23112
>a lot of it is influenced by the tech industry and programming as a profession
Yes, yes and YES.

Why else would you be forced to learn Windows-only IDEs after all? Microsoft and Apple are lobbying unis all the time.

 No.23118

>>23112
>Common Lisp
Nyx shilling for Lisp again.

Why not Python though? It's simple, even a toddler can understand it.

 No.23121

>>23118
For someone who isn't already familiar with a C/ALGOL type language, atoms, list expressions and function application are simpler concepts than algebraic expressions, functions, statements and pseudo-statement functions (python3 print) by a lot, not to mention the mess that is oop.
In a lot of ways python is 'ad-hoc algorithmic notation' the language and scientific notation has a way of making learned practitioners think it is more natural than it actually is. A toddler would have an easier time reading the little schemer.

 No.23122

>>23121
EVERYTHING I KNEW IS A LIE!

Why do people keep telling that Python is the simplest language to learn? And what about Smalltalk or Haskell?

 No.23123

>>23118
here is something even simpler: any modern risc. I really struggled to learn programming as a kid and in retrospective I wish someone had told me to start with edumips64 or something of that nature
a subset of c would be the reasonable step after that, you can start learning cs concepts and they will actually make sense. you will hardly see the point of linked lists, trees, graphs and such if you start with a higher level language. even complexity theory will be hard to grasp, as you might not know what constitutes a "step" for the machine

this is to say, the most effective way of introducing cs to an audience not mature enough to care about the definition of theoretical turing machines is to use a good enough real world approximation so that they can more intuitively absorb the concept in the future

 No.23124

File: 1706106024933.png (210.22 KB, 2048x2048, ClipboardImage.png)

>>23117
>Why else would you be forced to learn Windows-only IDEs after all?
oh wow I had no idea it was that bleak

>>23118
pretty much this >>23121

it's been said before that lisp is the Maxwell's Equations of software, because it's pretty much the most elegant possible way to express all of the fundamental ideas of what programming languages are and how to use them. a weird comparison to make is that in martial arts, if you're learning it the right way, you're supposed to start off with things like how to fall without getting hurt before learning how to roll. there's a reason why Common Lisp's logo is pic related, because lisp isn't just an elegant language, but it's also extremely powerful and often said to be the "lowest high-level language". you can pretty much define as many insane abstractions as you want on top of the language using the macro system, but you also have the ability to instantly print out the compiled machine code for any particular function. on Symbolics Genera you could inspect everything in the entire OS, all the way down the assembler, through the GUI.

so yeah, I think lisps in general are the best way to learn a language, and CL specifically has a lot of tooling that is pretty much mandated by its ANSI standard that removes as many barriers as possible for the curious student or programmer to see how pretty much any of it works – without even having to switch contexts reading the source code.

 No.23126

>>23124
>oh wow I had no idea it was that bleak
In the uni I studied Visual Studio was pretty much required to complete projects, the lectures were made specifically for Visual Studio only ("Click this menu item, then click this menu item"), same with lessons on making documentation (MS Office only). All the PCs had Windows installed. All of them. I assume those who study for system administration are pretty much forced to work with Windows and its utilities.

Windows is ubiquitous in schools and unis, if the governments forced every school and uni to use GNU/Linux or BSDs Microsoft would literally just collapse in agony. But this will never happen.

 No.23128

File: 1706107535687.jpg (93.84 KB, 750x913, 1469523427124.jpg)

>>23126
hilariously, I did take a few introductory CS classes in undergrad just to get some exposure to it with the extra classes I had left to fill and I was probably one of the only people there running linux on my laptop despite not being in STEM at all. but we had to use the Processing IDE (graphical programming thing that uses Java) for all the projects we did because that's what was used to teach the class, and I am almost certain that Java being commonly taught in CS (back when I was in uni at least) is because in the 90s/2000s it was the most enterprisey language.

>pic unrelated; flood bypass

 No.23129

>>23124
>a weird comparison to make is that in martial arts, if you're learning it the right way, you're supposed to start off with things like how to fall without getting hurt before learning how to roll
Do they learn this in MMA gyms? Karatekas and BJJ practitioners probably do know how to roll though.
>you can pretty much define as many insane abstractions as you want on top of the language using the macro system
Can you make your code consistent with all that power or does it turn into a chaotic mess like in JavaScript?
>2 + "2" = a

 No.23130

>>23128
In my uni it was Eclipse. Which is libre and cross-platform.

It was still installed on Windows lmao.

 No.23132

>>23129
I'm not sure what you're thinking of specifically about making code consistent, but with your example, CL will throw a type error like you'd expect from a sane language:

CL-USER> (= (+ 2 "2") a)
; Debugger entered on #<TYPE-ERROR expected-type: NUMBER datum: "2">


the symbol A isn't bound to anything but because of how lisps are evaluated it stops there before letting you continue. you can inspect the whole stack trace in emacs to see what's going on without the REPL crashing or anything, customize how to handle when type errors are thrown. I wrote up a really contrived example of how to do this but realized the post had become extremely long.

 No.23133

>>23132
That's good to know but I meant using different programming paradigms spontaneously without any sense of consistency. Functional here, OOP there, procedural there. You know, if you can create literally any structure then how'd you know what's best to use and when? Isn't it potentially more confusing to a newbie? What if the code you've made isn't as great and elegant as it could be just because you don't know what structures and methodology to use? Like, at least in Java you know that you have to work in the OOP paradigm. But within Lisp you don't even know where to go.

 No.23134

>>23122
I think it has to do with language designers thinking syntax being more similar to natural language makes it easier to learn (you could call it The COBOL Fallacy).
>>23133
Scheme is consistently functional with a few novelties like syntax-case mixed into the newer standards.
Common Lisp the language is mostly imperative, has functional elements like map functions and TCO, oop-ish records with defstruct and one of the most advanced object systems with CLOS.
Programming styles in individual projects is a more complicated topic. Lisp macros encourage the construction of domain specific languages, that may stray from the language core in major ways (see Qi for an extreme example). You might also have heard of the curse of lisp or the bipolar lisp programmer. Common Lisp has more instances of the type of project that is maintained by a single person despite being impressive in scale, disincentivizing code collaboration as a side effect. The Kandria gamedev essentially built a lot of the graphics stack by themselves.

 No.23135

>>23122
You can use Python without learning it. That's how most people do it, just repeating phrases they have seen others utter, conjuring the spirits of the computers with their spells, ritualistic programming.

 No.23146

>>23134
>The Kandria gamedev essentially built a lot of the graphics stack by themselves
Ah, I know this dude, he's made an entire Lisp game engine. Very cool. And Kandria is also libre software while being very beautiful, one of the more impressive libre games along with Xonotic and… um… DOOM.

 No.23147

>>23134
>CLOS
Okay, anons, which one do you prefer: OOP or DOP?

 No.23148

>>23135
>You can use Python without learning it. That's how most people do it, just repeating phrases they have seen others utter
You mean "copypasting?" That's how you learn the command line tools.

 No.23149

>>23146 (me)
He actually has videos of him coding the darn thing on YouTube if you're interested. You can also compile Kandria yourself if you wanna, it's on GitHub.

 No.23214

File: 1706625746001.png (63.24 KB, 634x931, matz emacs.png)

>>23112
I see where you are coming from, and while I'm not a real Lisp nerd, there is definitely some beauty in the core principle of the language, and there is a reason why languages like Python, Java and Ruby are so successful: they took many things that were common coding patterns in Lisp during the 1980s and 1990s and reinvented the wheel with ALGOL-like syntax. That's in part why Guy Steele was among the Java committee.
The only thing they didn't steal from Lisp yet is homoiconicity. They tried with languages like Dylan, but nobody gives a fuck about Dylan.

There is also no other programming language — except Smalltalk — that offers the same degree of interactivity as Common Lisp, or hell, even Emacs Lisp, where you can modify the behavior of the editor, which is nothing but a Lisp interpreter, in real time by evaluating a statement after pressing Ctrl-X then Ctrl-E.
Try redefining the "lambda" keyword in Python: it's impossible.
In Emacs, I can evaluate
(defmacro lambda (x) 0)
(defmacro defmacro (x y z) 0)

and completely break my editor. It's real hacker shit.
Protip: VSCode is nothing but Emacs with Javascript, without the interactivity

That said, I don't recommend to clueless beginners to start messing with Lisp if they aren't already familiar with basic programming concepts like variables, control flow, loops, functions, etc.
Lisp documentation is like kicking whales down the beach. Emacs Lisp documentation is terrible. Common Lisp is an old language and has tons of cruft dating back from the MacLisp days, like gazillons of ways to declare a variable.
Imagine yourself being a beginner all over again, and asking yourself "should I use setf or setq to declare a variable? what is dynamic scope?" or "should I use while, dolist, dotimes or the loop macro?" while a few autists start a flame war among themselves about whenever the loop macro is ""unlispy"" or not.
I'm not even talking about Scheme and its gazillion uncompatible dialects. Want to loop over something? I hope you are used to recursive thought patterns. Racket is neat and the documentation is great, but it doesn't have the same interactivity as Common Lisp and Emacs, and I don't code in Lisp to be hygienic.

I use Emacs everyday, to write code at my job, or to edit my shitposts with visual-line-mode during the weekend, yet I suck at Lisp.
I had brief glimpses of the power of Lisp, and I'm far for having seen the light yet, but when I want to get shit done, I tend to use languages like Python or Bash.
It's true that, when I forget I hate programming because of my codemonkey condition, I try to have fun with C, Zig or Lisp (mostly Emacs Lisp, de facto the most useful Lisp of them all), and I recommend to try any Lisp dialect to anyone who isn't jaded yet about these stupid calculators, especially as a CS student.
But I would also recommend a beginner to make something useful with Python or C first, something that makes them proud of themselves, then to go down the rabbithole later, when they have the mental energy and confidence to learn the weird shortcuts of the best text editor existing so far.

 No.23215

>>23214
>The only thing they didn't steal from Lisp yet is homoiconicity. They tried with languages like Dylan, but nobody gives a fuck about Dylan.
Homoiconicity is not the only reason why lisp is special. In fact, I think it is a rather poorly defined concept. Is python homoiconic because it has an ast package for handling python code as data?
Mainstream languages are further from lisp than just not having an S-expression syntax. Those features they took from lisp (I object to using the word steal here, anyone is within their right to make a programming language with whatever concepts they like) are often taken partially or without surrounding features which make them more useful. For example, python has lambdas but they are gimped by the fact that python has an expression/statement dichotomy and lambdas can only contain an expression (so instead you have to def a local function which is like using labels/flet). Another example is languages like rust which have macros but are gimped in a myriad of ways, like only being callable using a special macro call syntax and the c-style compilation process making them able to access and modify less state than in lisp.
>There is also no other programming language — except Smalltalk — that offers the same degree of interactivity as Common Lisp, or hell, even Emacs Lisp, where you can modify the behavior of the editor, which is nothing but a Lisp interpreter, in real time by evaluating a statement after pressing Ctrl-X then Ctrl-E.
Honorable mention to erlang.
>That said, I don't recommend to clueless beginners to start messing with Lisp if they aren't already familiar with basic programming concepts like variables, control flow, loops, functions, etc.
That is questionable advice since all of these things are slightly different in lisp compared to mainstream languages. There's that old lisp meme that goes something like "anyone can learn lisp in a week, except if they learned fortran first, then it takes two weeks"
>Imagine yourself being a beginner all over again, and asking yourself "should I use setf or setq to declare a variable? what is dynamic scope?" or "should I use while, dolist, dotimes or the loop macro?" while a few autists start a flame war among themselves about whenever the loop macro is ""unlispy"" or not.
You do not use setf or setq to declare variables. The standard does not recognize that as a valid way of declaring a variable. And there is no reason to use setq over setf.
While does not exist.
Dolist and dotimes are literally used for different things.
Loop has clauses which can replace both of them, and if you learn loop then you can generally forget about the do family of macros and just use loop (though it is undoubtedly more complex than the do family).
Regarding loop being controversial, I'm pretty sure most cl users use loop, even a good bit of those who argue that it's "unlispy"
Anyway, what were you reading that makes that stuff so confusing? The most popular recommendations for cl learning resources nowadays are usually Practical Common Lisp or Common Lisp: A Gentle Introduction to Symbolic Computation.
>(mostly Emacs Lisp, de facto the most useful Lisp of them all)
This just shows that you do not know enough cl.
>But I would also recommend a beginner to make something useful with Python or C first, something that makes them proud of themselves, then to go down the rabbithole later, when they have the mental energy and confidence to learn the weird shortcuts of the best text editor existing so far.
The state with teaching programming is fucked in general (as everyone in this thread seems to agree). While it is true that these mainstream languages have way more learning resources, the vast majority is still going to suck. One thing that's really popular in teaching programming that I think sucks is the telling of various falsehoods in order to simplify concepts for beginners.
I do not recommend that beginners start with c, there are way too many distractions for beginners when programming in c.
I do think that making a useful project yourself is a nice benchmark of having learned something, but I want to add a condition of not doing it by following a tutorial. Following a tutorial on how to do something is not a very good way of learning how things work, especially if you are a beginner.

 No.23220

>>23124
>lowest high-level language
Is this true? Does that mean it's faster than other HLLs? What about Python with a PyPy interpreter or a C compiler?

And how does Smalltalk compare to CL? Or CL to Scheme?

 No.23221

>>23220
>lowest high-level language
>Is this true? Does that mean it's faster than other HLLs? What about Python with a PyPy interpreter or a C compiler?
Not that anon, and I don't really agree that there are significant differences in highlevelness between pretty much all high level languages with gc, but being low level does not mean good performance and vice-versa.
The performance of cl depends on the implementation (like with your python example, except that cl code is usually more portable between implementations). Some implementations like clisp and abcl have garbage performance. Implementations like ecl and ccl have passable performance. The best performing and most used (at least in the open source community) is sbcl, which beats most other high level language implementations like python, ruby, etc. while getting beaten by c unless you really take care in optimizing your code.
>And how does Smalltalk compare to CL? Or CL to Scheme?
Smalltalk is more niche than both cl and scheme. Some cl features are inspired by smalltalk though, like clos (a bit indirectly, with clos being a descendant of symbolics flavors, and symbolics being generally inspired by the work at xerox parc).
The scheme community is generally way more oriented towards functional programming than cl's. But scheme does not really have an unified community since it's difficult to impossible to write scheme projects which can run on multiple implementations, while it's relatively easy in cl. Scheme's main language is way smaller and generally more oriented towards some conceptions of simplicity and purity they have, but in my opinion it just makes scheme a pita to use compared to cl.

 No.23224

>>23220
>Does that mean it's faster than other HLLs?
Looking at sbcl specifically, all functions are compiled at runtime or precompiled. Possible sources of overhead compared to a low-level language would be runtime checks, that may be disabled with (declaim (optimize (speed 3) (debug 0) (safety 0)).
You can also add type declarations to prevent dynamic dispatch and do faster arithmetic. Linked list usage may be optimized by doing destructive operations on them or replacing them with arrays and hashmaps.
Some datatypes and common coding patterns might slow down a program at many loop iterations, but you can get a lot of mileage out of a good common lisp compiler.


Unique IPs: 15

[Return][Go to top] [Catalog] | [Home][Post a Reply]
Delete Post [ ]
[ home / rules / faq ] [ overboard / sfw / alt ] [ leftypol / siberia / edu / hobby / tech / games / anime / music / draw / AKM ] [ meta / roulette ] [ cytube / wiki / git ] [ GET / ref / marx / booru / zine ]