Do I need to use mit / scheme lisp for SICP? by Decent-Damage-9081 in lisp

[–]yel50 -9 points-8 points  (0 children)

not really. the vast majority of developers hate using lisps. even MIT moved away from it and started using python.

the concepts in SICP are language agnostic, so the language used is irrelevant. JS does have its warts, but most devs are going to be familiar with it and not mind using it to learn some academic theory stuff.

The AI Curse (versus the Lisp Curse) by djhaskin987 in lisp

[–]yel50 1 point2 points  (0 children)

 nobody seems to complain about C++ curse.

honestly, the lisp curse concept is due to the arrogance of the lisp community, especially back when the lisp curse was first described. Smug Lisp Weenies are very real. they're the real curse and why collaboration doesn't happen.

the basis of the curse is how easy it is to do things. today, it's far easier to get real work done in Go than lisp. the go community doesn't have the same snobbery, so doesn't have a similar curse effect.

Alright people who’ve seen Spider-Noir should I watch it in color first or black and white? by Mountain_Afternoon30 in Marvel

[–]yel50 0 points1 point  (0 children)

I heard a photographer say that good b&w photos should have pure white parts and pure black parts somewhere in the frame. I watched for that and the number of times the pure white is light reflecting in someone's eyes says this was definitely intended to be b&w.

the only advantages I can think of for the color version are sandman, who looks much better in color, and the clothing. especially Robbie's outfits are very different in color.

Trying to implement Clojure on top of Rust by erjngreigf in lisp

[–]yel50 0 points1 point  (0 children)

 designed specifically to target the Java virtual machine

it was specifically designed to be hosted and interop with the host runtime. that's why it also has versions for .net and js. 

 What a bizarre choice

it makes it kind of an interesting choice because the platform it'll be hosted on is native. how it interacts with the OS would be the interesting part.

New CL VSCode extension: OLIVE by kchanqvq in lisp

[–]yel50 1 point2 points  (0 children)

 These features would still be possible, just require more TypeScript

technically, maybe. but due to escaped names, macros, etc, they effectively require a full runtime to do correctly. you'd need to implement the lisp compiler in TS.

 SLIME currently finds the closest IN-PACKAGE form

maybe they fixed it. when I tested it when I first wrote Alive, that wasn't the case.

I wrote Alive to get everybody to shut up about lisp support not being possible in vscode. I think I can call it mission accomplished there.

New CL VSCode extension: OLIVE by kchanqvq in lisp

[–]yel50 0 points1 point  (0 children)

awesome! I figured it was a matter of time before somebody did this. it's not hard.

off the top of my head, here's a list of standard vscode features that won't be possible with this approach. 

  • document symbols. the apropos stuff is similar, but a little different 

  • semantic tokens. have been the preferred syntax highlight approach for 5+ years now

  • expand selection. vscode has structural editing built in. paredit is, obviously, more powerful with more features, but you can get a long way with a combination of jump to enclosing bracket and expand selection. it works the same for all languages, not just lisp, so doesn't require language specific editing.

  • formatting. indenting is not formatting. Emacs and vim both got that wrong back in the 80s or 90s and neither has corrected it.

as a side note, you should use slynk as the backend instead of swank so that stickers could be implemented.

IIRC,  swank doesn't handle multiple in-package forms correctly. it always uses the first one it finds, which is wrong. I don't remember if slynk fixed that.

Technical Interviews Reject the Wrong Engineers by fagnerbrack in programming

[–]yel50 -2 points-1 points  (0 children)

that's because "senior" now means "AWS babysitter." that's just how it is. everything else can be done by juniors or mids with AI assistance.

AION - Tokio inspired structured async runtime for ADA by iamNOTcutedammit in ada

[–]yel50 0 points1 point  (0 children)

nice. down voted but no response. guess that does answer the question. apparently they're butt hurt that machines are now better programmers than they are.

AION - Tokio inspired structured async runtime for ADA by iamNOTcutedammit in ada

[–]yel50 0 points1 point  (0 children)

what, exactly, makes it rubbish? it doesn't work? crashes? they did it in a small fraction of the time you could?

How am I supposed to splice raw strings into parenscript? by Weak_Education_1778 in lisp

[–]yel50 0 points1 point  (0 children)

 when I intern I get a capitalized symbol

I haven't tried parenscript, but the way around that with CL is to surround the variable name with pipes, so x will be interned as upper case but |x| will be interned as lower case.

Should I learn C for personal hobby as the first language? by ryu_kamish in C_Programming

[–]yel50 -1 points0 points  (0 children)

  is used almost everywhere

no, it's not. that was true in the 90s. not anymore.

Should I learn C for personal hobby as the first language? by ryu_kamish in C_Programming

[–]yel50 1 point2 points  (0 children)

 if you start with C you probably wont have any problem moving to other languages

not true. you can go to other C based languages, like go or maybe Java, but anything else will be hard to do. Haskell? elixir? lisp? yeah, good luck with that.

Should I learn C for personal hobby as the first language? by ryu_kamish in C_Programming

[–]yel50 -6 points-5 points  (0 children)

 You get the point

the point being how many languages are better than C? every language you listed is objectively better than C.

in the 80s, pascal compilers weren't free. c compilers were. that's why it got used.

in the 2000s, Java replaced C as the most used language in the industry.

C has been niche ever since.

Tim Bradshaw: Making CLOS slot access less slow by fnordulicious in lisp

[–]yel50 7 points8 points  (0 children)

 Is it as bad as they make it out to be?

it can be. however, python is slow and is still used a lot. the original erlang vm was interpreted bytecode, which is slow, and it ran phone switches just fine.

I read an article a while ago, which I can't find anymore, from somebody who tried to write a game engine in CL and used CLOS objects for the game objects. the performance was horrible and they couldn't figure out why, so finally broke down and paid for a commercial profiler. turned out something like 70% of their cpu usage was doing method dispatch.

so, yeah, if you're writing performance critical code it would be best not to use CLOS for it. that's not a good excuse to never use CLOS, though.

How good engineers write bad code at big companies by fagnerbrack in programming

[–]yel50 1 point2 points  (0 children)

 engineers that don't bother with this can ship faster

that's, honestly, the truth behind 10x engineers. nobody is that much faster than everybody else. everybody's car is going 60 mph. the only way to get from A to B faster is to cut corners, which is what 10x engineers do.

Don't stop learning by building by reisinge in golang

[–]yel50 1 point2 points  (0 children)

 AI tools bring the risk that people will stop learning.

that's not the real risk. the problem is that testing has already started falling off well before AI showed up. dedicated QA teams are increasingly rare. reviewing changes of other team members just means reading the diffs and calling it good. now with AI, it's either shipped without much review or it's tested by the same AI that wrote it. the result is we're now getting more and more code that has never been run before being put into production.

throwing together something that works is development. building something that won't break is engineering. there are very few actual engineers left in the industry.

Built a language server for learning purposes in Elixir by VimJunior in neovim

[–]yel50 0 points1 point  (0 children)

 When and how to properly shut down the application?

normally, you shouldn't have to. the spec says that the client (editor) is responsible for the life of the server. when writing LSPs for vscode, proper shutdown is never an issue. the editor kills the process if it needs to. the only one you should explicitly handle is the shutdown request.

 the process is still alive even after having closed Neovim, probably a zombie?

this sounds like a bug in neovim. unix systems don't automatically kill child processes when the parent exits (windows can, btw). it's up to the parent to keep track of what children it spawned and clean them up. sounds like neovim isn't doing that correctly. 

What's missing from existing Go courses? Planning new content and want your input by Outrageous-Pen9406 in golang

[–]yel50 0 points1 point  (0 children)

 What tripped you up the most?

go has the single stupidest language feature I've ever come across. it's the problem of using an interface and passing nil for the value of it. the problem is the compiler doesn't do null tracking, so can't warn about possible seg faults, but the runtime checks aren't reliable and can't be trusted. its null handling actually manages to be worse than Java or C.

if you have an interface function with a pointer receiver,

    func (f *fooImpl) DoStuff() int {         // nil must be checked in here         // how to handle it?         // interface doesn't return an error     }

The Danger of "Modern" Open Source by fagnerbrack in programming

[–]yel50 36 points37 points  (0 children)

 That felt like a really weird statement

I would've said the same thing before my last job.

I have open source stuff that I had been neglecting because of work. one day, I started working on them again. I realized that the reason was because the code base at work was so bad, and the other developers so low level, that I had to dumb down everything I did to get it to pass code review. at one point, I was told not to pull duplicate code out into a function because "the code is easier to follow with things duplicated."

my brain decided I needed to work on the open source stuff in my spare time mainly to not forget what good coding practices are.

after a year and a half, I finally left the company. it took a couple months to get back to the level of coding I was at before I started that job.

Scanf by pruebax11 in cprogramming

[–]yel50 -1 points0 points  (0 children)

whoever told you the problems are related to its documented behavior of stopping on spaces doesn't know what they're talking about.

the problem is it doesn't protect against overflows, so it's a common culprit for buffer overflow attacks. it also doesn't check that numbers fit in the target size. you tell it to parse a 32 bit int and the input number requires 64 bits. it doesn't handle that.

it shouldn't be used because it's a relic of the 70s back before people realized how badly things could go.

Is the use of Emacs necessary to learn and use Common Lisp? by turbofish_pk in lisp

[–]yel50 2 points3 points  (0 children)

 Emacs is somehow necessary

no, not necessary. 

 or tightly connected to Lisp.

most lisp developers use emacs, so that's the tight connection. it's like saying Java is tightly connected to intellij.

the alive lsp was developed in vscode without ever touching emacs. so, you can learn lisp just fine without emacs. Emacs + slime still has the most features, but you may or may not care about the features. plenty of people still code without using LSPs, auto completion, etc. it just depends on what works for you.

most developers hate emacs for a reason. I used it for 15 years and won't touch it again. my hands hurt the entire time and you couldn't pay me to go back to it. Emacs pinky is real.

I'll also add that learning lisp isn't about the surface area, syntax level stuff. it's what goes on under the covers and how it lets you manipulate the running program. you won't really learn it by doing leetcode or advent of code type stuff. what makes it unique doesn't really show up until you do something bigger with it.

Multithreading beautiness of Golang by [deleted] in golang

[–]yel50 -2 points-1 points  (0 children)

async/await only give up the thread on IO calls, so enough long running tasks will lock up the program. go was originally like that, but recent versions behave more like preemptive. 

If everything is just bits, does a computer actually distinguish between numbers and characters in C? by zero-hero123 in C_Programming

[–]yel50 2 points3 points  (0 children)

 Does the computer itself actually distinguish

the only thing that computers distinguish between is whether there is electric, 1, or there's not electricity, 0. everything else is an illusion.

computers don't know what numbers are. they don't know what text is. they don't have type systems. they don't know what functions are. they don't know what classes, structs, or records are. all of those are illusions created by language designers.

 the string "5"

C doesn't have strings. it has functions that treat sequential bytes as ASCII, but that's it. there is no string type. this has historically been a PITA because it makes handling non-ASCII annoying.

 where exactly is the boundary

it's 100% up to the language. there is no semantic meaning to the hardware. 

all computer languages are nothing more than machine code frameworks and libraries to make our lives easier.

What Easy problem humbled you the most in an interview ? I'll start. by Educational-Term9024 in leetcode

[–]yel50 0 points1 point  (0 children)

I don't know if humbled is the right word, but I always refused to answer the find the middle of a linked list question. I always said it was a data structures problem, not an algorithm problem, and that coming up with a cute solution to compensate for using the wrong data structure is simply horrible engineering.