lainchan / λ

I feel bad because Java is the only programming language I am comfortable with

Colmerauer · 2023-01-29 03:18
As the title says, I program in Java, I have learned a lot of programming languages since (Scheme, Common Lisp, ANSI C, Python, bash scripting), but the only language in which I could finish some projects and not be constantly frustrated is Java. I do find Java (and my IDE Eclipse) easy and comfy, meanwhile C, which I tried for a project, was just frustrating. I needed to make a gui, in java I would just make a window with swing or javafx and it would be finished in a few minutes, with C it was very frustrating to get stuff working, my programming style, which is kind mixed between classical Java OOP and Lisps functional programming. Now Java has some trademark/license issues, but I do not care, it's libre software, and that's enough for me, but on the other site my slow laptop doesn't run my java programs too good. I just wish I could get into ANSI C or C++, but both are just no matter what I try frustrating. And I program in Emacs, which is fine for Lisp and C/C++, but terrible for Java. I would like to have an language I could use with Emacs. I feel like Java's reputation is worse than the language actually is. In these free software circles it's all about minimalism I feel and a Java programmer is not very welcomed there. I want to contribute to free software and help, but Java is the only thing I am good at, I suck at every other language. What does Lainon think? Should I stick with Java or should I move on to something else?
Rick Deckard · 2023-01-29 05:18
>>34141 Java is probably the first language you learnt and it is thereby normal to feel comfortable using it. I feel the same with c/c++. No matter how much time I invest in learning those « modern languages » like rust/haskell/ocaml, I just don't feel like I could ever develop real and sensible solutions using those languages. On the other hand, c/c++ sounds more familiar.
Guthrie · 2023-01-29 05:22
i am most comfortable with C# because most of my jobs use the .NET/Angular stack, and so this is what i have the most experience with.. nothing wrong with that, use the tools you're comfortable with, unless they are an actual hindrance
Project 2501 · 2023-01-29 06:36
>>34141 What is it exactly that you find frustrating about C or C++, do you find pointers hard? Is it just the new style of programming? Did you run into some annoying segmentation fault? C is definitely a big step to take from Java since you have to manage memory yourself, plus you won't find an extensive standard library like many other languages, and C++ is kind of in the middle; you can play with pointers and low level stuff like C but you can also create great abstractions to keep your work simple, also in C++ you don't really manage memory because of RAII which is great. One more thing, try to learn to use the terminal & build systems manually, don't rely on the IDE to do everything for you.
Acid Burn · 2023-01-29 07:47
>>34145 There are a few concepts I just can't grasp, but which work in Java perfectly fine. First, that every class has a file, then packages, abstract classes. And one thing I can't stand, that you have to include the libraries you want to use in the compile command, which is done automatically in Java. Pointers are annoying imo, but I can work with them. >Is it just the new style of programming? That too. I am just used to how things are done in Java and kind of rigid in that regard. >try to learn to use the terminal & build systems manually, don't rely on the IDE to do everything for you. I guess I do so with every other language, in my Emacs workflow, but for Java it is really annoying to do it everytime you want to compile your program from ground up manually. Idk, but thanks for the advice
Mentat · 2023-01-29 10:29
>>34141 >>34142 I can relate, I've learned Java first and find C super uncomfortable, but for example, I find Java and C# super comfortable. I can manage using JavaScript too, and I know a little bit of Python (even though I find the lang super weird and kinda uncomfy). But yeah, Java's OOP is super comfortable and I wish I could use it everywhere as well
Eldon Tyrell · 2023-01-29 10:36
>>34141 >GUI in C C is really bad for making GUIs. You should use C++ for that (even if you write C++ in a style that's similar to C). And OOP is actually good for GUIs. Read PPP2 and use FLTK for the GUI. If you still insist on using C, read C: Modern Approach, 2nd ed. For actually making the GUI in C, I have heard people recommend Nuklear or SDL. OpenMotif or LibXAW are also an option but they are old. I have used tk in Python (TKinter) and it's really easy to use for simple GUIs. >What does Lainon think? Should I stick with Java or should I move on to something else? If you want to get a programming job, I highly recommend you keep on using Java (there are a lot of Java jobs). Java/JVM actually doesn't have a bad performance but the startup time is bad (which is why it's bad for CLI applications). You might want to look into GraalVM?
Jean Dupont · 2023-01-29 11:56
>>34149 >C is really bad for making GUIs. You should use C++ for that (even if you write C++ in a style that's similar to C). And OOP is actually good for GUIs. Can you expand on each of these three statements? I'm just curious about your reasoning since I find this to be subjective.
Neo · 2023-01-29 12:17
>I feel like Java's reputation is worse than the language actually is. In these free software circles it's all about minimalism I feel and a Java programmer is not very welcomed there. I want to contribute to free software and help, but Java is the only thing I am good at, I suck at every other language. java has a lot of boilerplate, yeah, so it isn't the best language for tiny, quick projects, however, it is a *very* robust language. java makes it easy to do many very different things. it has a very, very good standard library (esp. the collections API). you have nothing to be ashamed of for feeling comfortable coding in it, it is meant to be that way and it is why its an enterprise-standard. for broader advice on learning new languages faster and to be more comfortable with them, i'd learn how references work (how, if possible, to pass by reference or value), how memory works (if there's a garbage collector or not), and then hand-roll APIs/libraries for elementary data structures such as a linked list, a binary search tree, a FIFO queue, etc. if you can do all of that then you can make any side project you want in that language with some degree of comfort.
Cat Mother · 2023-01-29 23:11
> ... but for Java it is really annoying to do it everytime you want to compile your program from ground up manually. Have you tried learning a build tool like maven or gradle? (apache license for both) It takes a long time to learn, but all you'd need to do to compile is run a "gradle compile" command. Plus they allow projects to be opened in pretty much any editor. Also, if you want a very ide-like experience with emacs, you can try using some of these packages: https://www.youtube.com/watch?v=Yah69AfYP34 LSP mode uses the exact same lsp made for eclipse, so it should feel familiar. It even has a package for debugging just like you would in eclipse, although I prefer spamming print statements lol. No luck with figuring out the whole making java run faster thing.
limited · 2023-01-30 05:24
>>34141 >I feel like Java's reputation is worse than the language actually is. In these free software circles it's all about minimalism I feel and a Java programmer is not very welcomed there. As someone who has only more recently picked Java back up, it has honestly been a breathe of fresh air for high-level projects where my C + Scheme preference quickly runs into walls. People also underestimate just how fantastic the JVM is, and it's still the only true "compile-one run-everywhere" platform I've seen. >I want to contribute to free software and help, but Java is the only thing I am good at, I suck at every other language. There are a good amount of Java FOSS projects, but you may not see the project owners posting here all that much. I've been meaning to start poking through the i2p reference implementations source code myself, which is the project that immediately springs into mind.
overriding · 2023-01-30 09:07
Go might be the language you're looking for. It's basically C for the 21st century. It's very opinionated on error handling and programming paradigms, but I find that when you adopt it you get a lot done. try it out
progn · 2023-01-30 16:40
>>34160 >Go I would like to love Go. Go is a simple language and it has CSP style goroutines (very easy and convenient) but there are a few problems: - Running go get will send telemetry/phone home to Google: https://sourcehut.org/blog/2023-01-09-gomodulemirror/ - The designers of Go changed the syntax just to be different from C and C++ in some cases. But at least the syntax is not terrible. - Working with files doesn't always work that well on Windows (I don't personally care much): https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride - Apparently No stack traces by default. You need to print them yourself. WTF?
Yamaoto Toshi · 2023-01-31 18:30
>What does Lainon think? Should I stick with Java or should I move on to something else? Depends, what do you actually do with Java? >I want to contribute to free software and help There are quite a few projects that are made with java. Popular ones at that. I really don't remember what they were lol but I remember a few times I didn't install something I was interested in because it was written in Java... Now, that was immature of me, but just as I may have been "against" Java, there are plenty of people who don't care or even actively like Java. There's room for everybody. Part of your problem may be that here in lainchan (and other IBs) people have a very specific set of "approved" languages, and they'll disavow everything else, sometimes loudly. But you're not uere to please a bunch of strangers who do not think like you. Whether they like it or not, this stuff exists and the competition can be healthy. If their silver bullet is the best thing since buttermilk then they ought to show it with work and not just words. But I'm getting sidetracked here. I feel exactly like you. I would love to be able to write anything in lisp, I actually find the language very nice. But it just doesn't "click" with the part of my brain what actually makes things. I feel very at home with C, though, even if everybody seems to hate it viscerally. Well, I used to feel very much at home with C. I haven't done much in a while, and I'm considering starting to use javascript, simply because it's awfully convenient for me right now. Only piece of advice I can give is either stick to it and fuarrrk the naysayers, or put in the work in your language of choice, put in the hours until you"get" it and become "fluent" in it. Java is so easy for you probably because it was your first language, at least the first one with which you made serious projects, so now you think in terms of Java.
word · 2023-02-01 01:06
>>34141 Lainon, as one of the ruder language snobs out there, allow me to give you permission to stop worrying about this so much. You're beating yourself up in a way that is counter-learning, which is the opposite intent of language evangelism. Indulging a little metaphor, the point of learning to fly an airplane isn't to discover that it's just as easy as driving a toyota corolla, it's to discover the potential to get an impossibly larger amount of power through an eventually learnable amount of complexity. Java was *built* to be the /comfy/ -est language around at the time; it's neither surprising nor a big deal that you're encountering friction when switching to more complicated systems. This is why language snobs say things like that you need to practice regularly, because we know that extra power doesn't come for free (although some langs give it more efficiently than others grumble grumble...). You wouldn't expect to be able to get a jumbo jet across a continent without a little sweat just because you're comfortable in your compact automatic, and that's okay. You just need more practice, and then it'll come as easily as you want. Again, us snobs will tell you that you need to dedicate time to practicing in order to become a better programmer, but you should ignore us on everything except the most literal reading of that advice. The point of taking your medicine is that it's very good for you in the long term, so don't worry about washing it down with a spoonful of sugar in the meantime. There's nothing wrong with not just taking neat shots for now. When you sit down to write a program, start by hammering the whole thing out in java to get the idea from your head onto the page, and feel exactly zero shame about it. Keep all your focus for now just on what you already know you can do. *Then*, when you're mostly done, you can rewrite the same program in C or Lisp or Python or whatever, and focus just on practicing the equivalents of what you're comfortable with already in your new, less comfy language. Then decide on a new project, flesh it out in Java, and translate it to a more difficult language. Sugar, medicine. Sugar, medicine. It should be clear that if you do this for long enough you'll *eventually* be just about as familiar with your new language as you are with Java, so, to repeat, I give you permission to not worry about my snide comments at Java's expense in the meantime. A personal preference for Java isn't the software industry writ large's problem, it's an unwillingness to learn things outside it. Once you're learning the problem will resolve itself.
Spooky · 2023-02-01 13:32
>>34147 >every class has a file What is stopping you from doing that?? >packages Isn't this the same thing as a library? >abstract classes Exists in C++, plus you can just say that this is an abstract class in the docs/comments, you don't necessary need the compiler to enforce it > include the libraries you want to use in the compile command True this can be annoying, build systems make it easier but it can still be annoying especially when some library doesn't list its deps correctly or something >pointers are annoying imo I think I got used to working with them so meh, but they can still be a nuisance >used to how things are done in Java Most popular programming languages have OOP so, it shouldn't be difficult I think, maybe you're not used to having too much choices, it's ok to stick with what you already know, progress step by step >annoying to do it everytime you want to compile your program from ground up manually I've never worked with Java, so I can't say much
Hitomi · 2023-02-01 13:48
>>34150 (not him) I find C++ & Qt with Qt Designer super comfy. I don't think C can compete when it comes to making GUIs, it's already too demanding, and that gets amplified when you want to use multi threading and whatnot.
Tyrell Wellick · 2023-02-01 13:54
>>34155 >although I prefer spamming print statements lol Unironically works very well most of the time
dictionary · 2023-02-01 14:07
>>34148 >But yeah, Java's OOP is super comfortable and I wish I could use it everywhere as well O.O On a serious note, too much OOP can hurt performance and can easily become an over engineered piece of crap. Great OOP can make maintaining and extending your code much easier though.
Hitomi · 2023-02-01 15:14
>>34175 A package doesn't have to be one to one to a library, it can be a smaller unit. For instance, if you had a library for working with ZIP files, you might have separate namespaces for decoding and encoding and a common one between them for utilities
sizeof · 2023-02-02 12:10
>>34141 Have you tried kotlin, it compiles to machine code? It's like a java successor, you probably heard of it. Good for GUIs too. C is a terrible language and super bare bones.
* { opacity: 0; } · 2023-02-03 10:36
>>34185 >C is a terrible language and super bare bones. Asinine lainon. 1. C was created in the seventies, you can't compare it to languages that came decades after it and learnt from the mistakes others had done before. 2. C is supposed to be bare bones, it was made for OS dev, it was made for unix, you can't write a kernel in Java or Kotlin, it's idiotic and ignorant to criticize a low level language for being low level. 3. The simplicity of C makes it very easy to write a compiler for it which allows it to run on any obscure machine.
Dujour · 2023-02-03 18:41
>>34198 Not that lainon, but > 1. C was created in the seventies, you can't compare it to languages that came decades after it and learnt from the mistakes others had done before. Lisp was discovered in the 50s and is one of the more advanced languages available today. Lots of advancement happened in the lisp family leading up to the 70s (the founder of garbage collection, big numbers, pattern matching, allowing low level code to be abstracted to high level code at no cost etc. Etc. Etc), c mostly ignored most of the lessons that could have been learnt from a family made decades prior. > 2. C is supposed to be bare bones, it was made for OS dev, it was made for unix, you can't write a kernel in Java or Kotlin, it's idiotic and ignorant to criticize a low level language for being low level. You do not know what you're talking about https://en.wikipedia.org/wiki/JX_(operating_system) This is an operating system and kernel written in Java, there is also javaOS which is used in sim cards. The kernel of JavaOS isn't Java but all other low level software (drivers etc.) is written in Java. This is not even to mention all the lisp operating systems that exist that are in a much more abstract and rich language https://en.wikipedia.org/wiki/Genera_(operating_system) https://en.wikipedia.org/wiki/Lisp_Machines These operating systems are far more advanced than the UNIX derivatives we use today and far better integrated. I believe there were also small talk and interlisp operating systems made at xerox parc which had the own sets of high level features. Even the VMs of smalltalk feel like complete operating systems, the distinction between os and environment is smaller than you'd think. > 3. The simplicity of C makes it very easy to write a compiler for it which allows it to run on any obscure machine. Lisp was implemented on many machines while being more full https://youtube.com/watch?v=H-yuZ2pejGU Is an example of an advanced lisp on a low power old calculator, such languages do find their way to obscure machines. I remember C having some issues on genera due to the machine having proper bignum support as the default system integer size
FILLER · 2023-02-03 20:58
>>34206 I can always count on some lainon to back me up when I soykaf on C. Thanks.
null · 2023-02-04 02:30
>>34206 damn the more i lurk this place the more i want to learn lisp, it seems so cool. I am actually conflicted between learning lisp or learning C now.
Boris Grishenko · 2023-02-04 08:16
>>34210 learn lisp. It's worth your time if you have an inkling of interest in computers beyond soykafty webapps and making corpo money
Masami Eiri · 2023-02-04 18:57
>>34198 >1. C was created in the seventies, you can't compare it to languages that came decades after it and learnt from the mistakes others had done before. Then compare it to Algol or CPL or PL/1. All better than C, all built with systems programming in mind, all made before C. Even some more Pascal or Fortran influence, which weren't for systems, but (with Pascal) was also simpler, would have been a huge boon, considering how great Modula-Oberon looks compared to where C++ and Objective-C ended up, and how many high-level extras had to be bolted on after so many tied themselves to the C family "because it's simpler". It's funny how rarely someone defending C mentions any of this. C was full of decisions that were known bad at the time if you used anything other than just C and cobol. The Multics team after Bell Labs got bored of doing things right had no end of annoyance from C applicants that wouldn't work for them in PL/1 on account of refusing to even investigate if it was possible that a language could be simultaneously less broken than C and less restrictive than cobol. Fast forward a few years and Multics was up and highly reliable while unix languished in maintenance-moneypit hell for the next decades. >2. C is supposed to be bare bones, it was made for OS dev These two statements are mutually exclusive. Only one can be correct. OS dev is a hard problem, and needs sophisticated tools to do right. For other languages the sophisticated tools were careful, knowledgable design, and for C the sophisticated tools were the many smart programmers who had to learn C at school because their university couldn't afford a mainframe, were never told there are better options, and got bribed or guilted into improving C systems (Stallman and his consequences...). A horrifying waste of potential. Have a history lesson: https://pastebin.com/UAQaWuWG C's "made for OS dev" sterility is such a handicap that Be managed to take Stroustrups' simulator programming language and fashion a better OS than NT or Unix out of it through a fraction of the effort. But they made the crucial mistake of asking to be compensated for their stroke of genius, in the 90s and 00s, so it died of malnourishment. (STALLMAN AN-) >3. The simplicity of C makes it very easy to write a compiler for it which allows it to run on any obscure machine. This was a virtue in the 70s, when computers themselves were expensive and obscure and (sometimes) immature, so you took whatever garbage you could get. It stopped being a virtue and started being a detriment quite some time ago. Not only are we no longer unable to build computers that cost less than a small house, but we no longer see either small or simple compilers as anything but footguns. C's compilers were hot garbage compared to most others until *some time in the mid 90s*, but then dropped the pretense to seriously improve themselves, and C writ large has barely looked back on this supposed boon of the language (except to tentatively observe that now the language itself became the diet of worms, but that's a rant for another time). It's long past time to update the rest of our outlook.
Trinity · 2023-02-04 20:07
>>34198 >3. The simplicity of C makes it very easy to write a compiler for it which allows it to run on any obscure machine. The simplicity of Brainfuck makes it very easy to write a Brainfuck compiler, which allows it to run on any obscure machine. However, is that a worthwhile tradeoff, considering how unpleasant it is for the programmer who then uses the language?
Bobby Newmark · 2023-02-05 02:02
>>34222 The debate is not relevant as most of the c/c++ industry exists mainly for the maintain of existing softwares (which should already demonstrates the absolute decline of programmers using those languages) while other languages are motivated by specific standards and paradigms. Following this, using C for a project could never be justified by anything but the ecosystem constraints (or familiarity's programmer with respect to the language) that is already purely abritrary.
Motoko Kusanagi · 2023-02-05 02:46
>>34213 people often say the same thing about C though, can you expand on that? what's the thing that makes you go lisp? genuinely interested
WHW · 2023-02-05 03:35
> other languages are motivated by specific standards and paradigms. Standards and paradigms better because...? "The Industry" is more important than Computer Science itself or the god who decided said standards and paradigms to be better is called "majority"? Is it another entity with lazy thinking? > using C for a project could never be justified by anything Ain't there lots of things nearly undoable unless you're using C or C++? Are they not faster for example? I recall BeeCrowd, formerly URI Online to have a problem solved with C++17 that remains there for Java or Python. If decision criteria is to be easier or more closely related with profit alone I'm at the wrong place. Kindergarten and market paranoia have neither place for knowledge, nor consideration for it. Not to mention the worrying with "Projects", as if a "Project" ever made the team persons like Schrödinger, Euler, Kant... I can make every and each of the tools I often reuse. Are you capable of induction or your project money is enough for your aspirations? Note that I never suggested that using C makes someone smarter but what makes C a bad language if one do know how to program using it? Unspoken statements about "hating stars" and "long life to Java reference magic!" stayed in the air. I'd never be indelicate and suggest one not to be smart: you did yourself through empty criticism.
WHW · 2023-02-05 03:42
> These two statements are mutually exclusive. Only one can be correct. OS dev is a hard problem Then why am I using FreeBSD and how are the whole src a classic C plethora...? Do not mistake an OPERATING SYSTEM with toys created to be the Electron interface so you open whatsapp and similar "apps". Oh, but they do sell! Who cares about their being mere toys again? I did never checked the source of BSDs, Solaris, nor the mainstream Linux distributions, but I'll have my years of experience as a manager and NOT a scientist to guess my taste to be correct. It'd be nicer if the space were used for educated talking instead of self-defense retorts.
Reki · 2023-02-05 04:44
>>34210 Same, I rarely see lisp mentioned outside of here, already learning C, should I do lisp too?
Chan Siu Ming · 2023-02-05 04:54
>>34226 >Standards and paradigms better because...? It appears that I mistakenly believed that we were discussing C as a language specifically from the standpoint of semantics. Never once did I assert that the industry would be more significant than CS itself. Actually, I think the opposite is quite true. I believe the only reason we use C nowadays is because of its historical use : in some sense, C is not used for the capabilities it introduces (as many other languages frequently offer similar if not better functionality) but for the ecosystem induced and its inherent constraints (programming in embedded systems usually require to use C) >Ain't there lots of things nearly undoable unless you're using C or C++? Once more, it appears that you have misunderstood my reasoning. While I don't claim that C/C++ is not used in most projects, those projects did so because the ecosystem was better maintained. Of course, there is another group of programmers, like myself, who are only mainly concerned with its semantics, and C++ is pretty intriguing in that regard. The language consists of distinct little turing-complete and pseudo-functional languages like its template instantiation system and lambdas. Believe it or not, but I really find those inner languages interesting and I would be the first to advocate for the sporadic C++'s features. However, I don't think those paradigms are well-suited for pratical application solutions. Moreover, those inner languages are merely an accident. So on one hand, C doesn't introduce new sensible features compared to others and C++ is yet to be consistently specified (for that matter, the standard contains several flaws which are just ignored by implementations). >I recall BeeCrowd, formerly URI Online to have a problem solved with C++17 that remains there for Java or Python. Looks like a skill issue. >If decision criteria is to be easier or more closely related with profit alone I'm at the wrong place. Kindergarten and market paranoia have neither place for knowledge, nor consideration for it. Again, I am not arguing about the industry in itself, but rather about the motivation behing using c/c++ as a qualitative language. I have already said earlier, that some people use c/c++ simply because they're familiar with it. >I can make every and each of the tools I often reuse. Are you capable of induction or your project money is enough for your aspirations? Well I am not working in the industry so I can't really talk about my own motivations, I am simply an amateur interested in programming language theory and unix. Although not all of the tools I use are handmade, I am familiar enough with them to fork and tweak them. >Note that I never suggested that using C makes someone smarter but what makes C a bad language if one do know how to program using it? Is that the point? Perhaps I'm mistaken, but you're simply saying that the quality of a language is reflected in the ability of its users to program. While it is true most good programmers prefer to use consistent and qualitative languages, it doesn't mean the converse is true.
Zero Cool · 2023-02-05 08:40
>>34228 >>34210 Yes, it's a better language than C and has great CS learning resources. Lots of people like to recommend SICP which uses scheme but I would suggest you start with Common Lisp which is much more useful in real life than scheme. Clojure is a very practical option too.
Case · 2023-02-05 10:16
>>34225 Not him, but it's one of very few languages that manages to be both very simple (in interface and implementation) and very powerful. It consists of a small set of easy to understand but powerful abstractions that work fairly close to the metal, with everything else being build atop them. You can write a naive Lisp implementation in like a day, because the language itself is 99% standard library.
Boris Grishenko · 2023-02-05 13:31
>>34236 >>34238 nice, you lains convinced me, the moment i finish exams i will learn common lisp, any tips??
SHODAN · 2023-02-05 15:58
>>34240 Not that lainon, but here's my opinion: First, read "Common Lisp: A Gentle Introduction to Symbolic Computation" by David S. Touretzky. Since you're coming off a programming class, some of the material will be review. That's fine. The point is to get you thinking in lisp instead of a statement-oriented language. So read everything and do all the exercises, but don't worry about if you're moving pretty fast otherwise. Next, read SICP by following along with the MIT 6.001 videos. This is Scheme, not Common Lisp, but the languages are similar enough that you'll be able to make the transition fairly easily. (Common Lisp is, like the other lainon said, much more useful in real life, but in my opinion that's why you learn it *second*, not first. Scheme is simpler and purer, which means you can spend much more time focusing on the lispish approach to problems than on drowning in the particulars of an industrial-strength language. We'll come back to it.) Depending on who you are (you'll probably be fine but then other lainons will find this helpful), you might find this MIT-oriented book a little heavier on the math than you're used to; if so, feel free to pause wherever you are, read through "The Little Schemer" trilogy, and then come back to just treat the numeric methods as an odd sort of customer request. It's also necessary to really drive home programming in a clean and functional style. By the time you're done, you'll know everything you need to start grokking the Lisp mindset. Third, read "Practical Common Lisp" by Peter Seibel. Now you're ready to handle the weapons-grade stuff safely and confidently. PCL will give you a tour-de-force of most of the foundational features of the language you need for general competency. Don't just wander through this one; the more effort you put into its examples, the more you'll get out when you start your own projects. In my opinion, after reading all three of these you'll have what it takes to graduate from beginner lisper with just a little practice on you own to make sure everything sunk in. From here you're ready to take on just about whatever you find with enough effort. If you're a little tired and want to have some fun, "Land of Lisp" by Conrad Barski is always my recommendation. It will be mostly review, but Barski has a great writing style and it does have a few gems of its own. If you want to jump straight into the deep end, classics like "On Lisp" by Paul Graham, "Common Lisp the Language" by Guy Steele, "Programming Algorithms in Lisp" by Vsevolod Domkin, "Let over Lambda" by Doug Hoyte, "ANSI Common Lisp" by Paul Graham, or "Common Lisp Recipes" by Edmund Weitz are all good options depending on what you're most interested in (Also check the Lisp thread for more. Verisimilitudes does a great job in there). Have fun exploring and experimenting with your alien technology.
Demeere · 2023-02-19 04:13
>>34141 > I feel like Java's reputation is worse than the language actually is. In these free software circles it's all about minimalism I feel and a Java programmer is not very welcomed there. I want to contribute to free software and help, but Java is the only thing I am good at, I suck at every other language. Stay with Java, there is ton of great Java open source libraries that you can contribute to
Knuth · 2023-02-23 18:49
>>34227 No need to feel so personally attacked, friend. I'm also running pretty much exclusively C operating systems. I'm not telling you what to use or not to use. I don't care about your personal decisions; use whatever makes *you* happy, and ignore everyone else. I'm just trying to speak to the *technical* aspects of various programming languages/operating systems. If you'd rather use C for different reasons you have my full support, but it's not really germane to the context of this discussion. For example, >Then why am I using FreeBSD and how are the whole src a classic C plethora...? is pretty easily answered by literally just reading the rest of that paragraph: >and needs sophisticated tools to do right. For other languages the sophisticated tools were careful, knowledgeable design, and for C the sophisticated tools were the many smart programmers who had to learn C at school because their university couldn't afford a mainframe, were never told there are better options, and got bribed or guilted into improving C systems. A horrifying waste of potential. Have a history lesson: https://pastebin.com/UAQaWuWG Again, not a reason to not use C if it makes you happy for non-technical reasons, just the reason those of us who only enjoy languages based on their technical sophistication wish the alternative operating systems written in them at the time had broken into the mainstream as well.
The Phantom Phreak · 2023-02-26 15:19
>>34185 GraalVM's native image compiles to machine code as well.
Spooky · 2023-02-26 20:38
>>34467 people use c because it exists and oses in c because they exist if there are all these fancy languages and oses then where are they? i'm not convinced they were much more than ideas or tech demos people make emulators for basically every games console ever but i don't see emulators for these fancy oses showing off fancy features
Demeere · 2023-02-27 08:45
>>34141 I think you are just feeling the need of appreciation. If you have not yet gave up on Java, contribute to I2P. Not only will it improve your skills and bring you a sense of purpose but by doing so, you will be making a honorable deed. https://geti2p.net/en/docs/how/intro https://geti2p.net/en/get-involved/ https://i2pgit.org/ http://git.idk.i2p/
James K · 2023-02-27 10:42
>>34502 >i don't see emulators for these fancy oses showing off fancy features Because it's a niche subject and you don't look for them, would be my guess. I know there's a ton of stuff for lisp machines, Smalltalk, even some Forth. At a stretch you could say Emacs and if you imagine using that everywhere. Have you tried out Guix? It's an OS that you can actually use and is almost entirely configured in Scheme. It's much closer to GNU/Linux than the rest because it's Linux based, but even what they do show is very impressive to me.
Wintermute · 2023-02-27 13:23
>>34510 No, I'm aware they exist, I just don't see anything impressive or fancy about them. I don't see any fancy features that couldn't be done in a compiled imperative language like c, and I don't see anything that is sorely missing that is available there. Other than claims of quality documentation & debuggers, which could be done in c oses but doesn't because people don't care not because it can't be done due to language limitations.
James K · 2023-02-27 15:51
>>34520 >I just don't see anything impressive or fancy about them. You don't see anything impressive about writing arbitrary code that interfaces with the operating system quickly and safely? I think you don't notice how good image based operating systems are because many of their features have been reduced in scope and implemented on top of C operating systems. Take debuggers for instance: you run a C program like you would run a lisp program to catch errors you can only get in C and suffer many of the drawbacks of lisp. Or the JVM which does away with this silly "compilation" thing that C pushes and is basically the easiest way to distribute anything. The JVM is almost a lisp machine emulator if you squint at it, so are web browsers, and let's not forget Emacs. AI researchers decided quite a while ago (and Emacs users agree) that the best way to interface with a program is a programming language. Sadly the settled on Python for this. This entire story is one of settling. You could have a joyful experience programming in lisp, or you could settle for a painful one in C. You could have a Smalltalk operating system running on bare metal, or you could settle a vendor OS that makes the computer look like a PDP-11 for an operating system written in C that runs a web browser that runs an interpreter for a programming language which is actually usable for application development. There's your 50 million lines of code to open a text file, which someone else settled for over a more expressive format because it was more convenient to implement. Then another person comes along and implements a plugin for that editor that lets you treat the file in a more structured way because that's what people wanted to begin with. The end result of doing all these things that can technically be done in a language like C is you have the easy to implement half a lisp machine running on top of a C one (and many other layers in-between). You can't just not do good design; you can only kick the can down the road. People have been can-kicking for decades, and just look where it's gotten us. We should stop and engineer serious solutions to these problems instead of leaving someone else down the line to maybe try and half ass it. We did it for networking when we where forced to, and we can do it here.
Knuth · 2023-02-27 17:59
>>34525 >You don't see anything impressive about writing arbitrary code that interfaces with the operating system quickly and safely? c on pc has had this for more than 20 years with hardware memory management units. Segfaults prevent a process from accessing or altering another's memory, and Syscalls interface with the os. >The JVM is almost a lisp machine emulator if you squint at it, so are web browsers, and let's not forget Emacs. Android is java based and it's by far the worst programming environment I've ever used. Building programs and debugging them on android is way worse than in c. Headers & makefiles in c are terrible, it's ridiculous they're still a nuisance 40 years later and it's horrendous barely anyone acknowledges they're a problem and a mistake. C is also stupidly difficult to get started drawing pixels on the screen, and absurd getting things to compile is so difficult when it's intended to be portable. But this is not an inherent property of compiled imperative languages, people just don't care. What exactly do you think would change with lisp or smalltalk? People have been hyping them up for a long time but I don't see real results. C and c++ compiler devs have refused to improve things wasting decades doing barely anything. Yet I don't see progress with lisp or smalltalk either. At least some people are writing new c like programming languages with llvm and new oses like serenity os templeOS in c like languages but I haven't seen anything like that on the lisp side other than the jak and daxter decompilation.
James K · 2023-02-28 02:17
>>34527 >c on pc has had this for more than 20 years with hardware memory management units. An MMU only prevents the worst classes of bugs and malware. You can still quite happily overwrite random heap data and have your program act unpredictably. The MMU is a hugely complicated piece of hardware that only exists because running compiled code on a computer is insanely dangerous. The solution to these problems isn't a complicated piece of hardware to let you do something stupid without causing too much damage. It is trivial to prevent this in software, and most modern programming languages do which makes the MMU almost entirely redundant were it not for people insisting on executing random pieces of unverifiable machine code. >What exactly do you think would change with lisp or smalltalk? The security vulnerabilities in C software would mostly be eliminated. Distributing and building code would become much easier as you no longer have to worry about ABI. Programs would be much easier to extend and modify. You would no longer have a bunch of poor quality DSLs for every program that wants to be extensible. There would be a drastic reduction in the number of random text file formats you need to work with since you could just write objects directly to the disk. >Yet I don't see progress with lisp or smalltalk either. Because making serious progress takes a lot of effort. These languages don't have support so people aren't willing to put work into making them supported. >new oses like serenity os templeOS in c like languages but I haven't seen anything like that on the lisp side Writing an operating system is a huge amount of effort, but it has been done. You have Mezzano which can run on actual hardware and Medley Interlisp-D which is a re-compilation of an old lisp OS that can be run in a browser or from within another operating system. Of course these have very limited support for different hardware because of either a lack of drivers or the fact that many modern pieces of hardware are designed around running Linux.
Chan Siu Ming · 2023-02-28 21:08
>>34532 >These languages don't have support so people aren't willing to put work into making them supported. What are you talking about? Lisp is constantly hyped up, and it was being hyped up 10 years ago. There is heaps of energy and time going into lisp. Even more into other interpreted and functional languages. >You can still quite happily overwrite random heap data and have your program act unpredictably. Any language that supports pass by reference or array indexing can have bugs with the wrong item being overwritten. Out of bounds array read/write can be guarded against in compiled languages by automatically inserting bounds checks, and this can even be done in c++ with operator overloading on array structs. I disagree that the MMU is overly complex or large compared to the rest of the circuitry in a cpu, and regardless it exists in all pcs now so it makes sense to take advantage of hardware that exists.
James K · 2023-02-28 23:54
>>34539 >There is heaps of energy and time going into lisp. This is a blatant lie if we are using anything measurable that isn't "hype" on obscure internet forums. >Out of bounds array read/write can be guarded against in compiled languages by automatically inserting bounds checks At which point you don't need an MMU to do that for you. >c++ with operator overloading Yuck. >it exists in all pcs now so it makes sense to take advantage of hardware that exists Yes, because the fact that they've put some safeguards in place to prevent the consequences of your bad decisions is really just them telling you to make even more bad decisions.
protected · 2023-03-01 00:08
>>34543 What exactly do you want done then? And if people who care about lisp haven't made it "supported" who exactly do you think will?
James K · 2023-03-01 00:16
>>34544 >What exactly do you want done then? I have already described what I want and why it is good. I just doubt that it will happen and I lack the resources to make it happen.
Lukasiewicz · 2023-03-01 00:24
>>34545 There's no reason why you can't build a modern lisp machine on top of existing hardware. It makes more sense to take advantage of the massive amount of resources going into x86-64 cpus and arm cpus than starting from scratch.
James K · 2023-03-01 00:33
>>34546 >There's no reason why you can't build a modern lisp machine on top of existing hardware. I didn't claim that you couldn't. In fact, that is exactly what I was suggesting. Make the software properly and let the hardware catch up.
Agent Richard Gill · 2023-03-01 01:12
>>34547 Look, new ideas fundamentally don't get funding or resources because they're unproven. Even ideas that are obviously correct, or have that have worked in the past but been discarded. People only want to do things that they think will pay off, and pay off quickly. So the only way for new ideas to be developed into real things, is for highly enthusiastic individuals to invest their own time energy and resources into them. People who care about something have to be the ones to make it happen otherwise no one will. C is was success and is as portable as it is BECAUSE of its troubled development porting across different limited computer architectures. That development cycle forced the devs to put in the EFFORT to make the critical parts work. Looking at the rotten parts like the preprocessor, headers, build process it is very clear that C was not developed by experts. If a Lisp OS is to be a success, real EFFORT has to go into it by people who care about it. If no one cares enough to put in the effort, it doesn't matter how nice or practical an idea is.
James K · 2023-03-01 02:34
>>34548 >because they're unproven This contradicts: >that have worked in the past The real reason is because we already have something else that works. >forced the devs to put in the EFFORT to make the critical parts work. I would argue C's success is more down to the lack of effort put into it. Not much effort was put into writing the first C compiler, so writing a C compiler is easy and many people were able to do it. >real EFFORT has to go into it by people who care about it. This has already happened. As you said, "heaps of energy and time are going into lisp". Did you see the OS I mentioned? there are many things like that. Many people care and put a lot of effort into it, that alone is not enough. C may have been developed by a few people, but that doesn't mean you only need a few people to replace it.
J.C. Denton · 2023-03-01 03:10
>>34551 There is nothing new under the sun. New means "new to the audience". I don't get what you are complaining about, first you say lisp isn't supported, now you're agreeing with me saying heaps of energy has gone into lisp.
James K · 2023-03-01 03:48
>>34552 >first you say lisp isn't supported, now you're agreeing with me saying heaps of energy has gone into lisp. Both of those things are true. A few passionate people putting a lot of work into lisp specifically will not achieve what it did for C and UNIX, and will likely not achieve what I want because what I want isn't really related to lisp.
Lady 3Jane.. · 2023-03-24 04:29
>>34206 >These operating systems are far more advanced than the UNIX derivatives we use today and far better integrated Why did humanity go with the UNIX derivatives?
Case · 2023-03-25 09:41
>>34900 * Price (including that of Lisp machines) * Running on general purpose hardware which was becoming more and more common * Hardware performance and price of the aforementioned general purpose hardware forced people to throw the baby with the bathwater * Inertia due to "good enough == worst enemy of better" * Reactionary feeling to Multics, PL/I and co. that were justified but ended swinging the pendulum too far back * The balance in influence on computer science/proramming between industry (who wants technology for streetshitting fungible cogs) and academia (who wants theoretically clean, consistent and appealing stuff like Lisp, Smalltalk or ML) being skewed in favour of the industry Also, read http://doc.cat-v.org/bell_labs/utah2000/utah2000.pdf (Systems Software Research is Irrelevant) and https://www.dreamsongs.com/WIB.html (Worse is Better).
list · 2023-03-25 09:46
>>34915 For "Worse is Better", here's a condensed version from Wikipedia: New Jersey style In The Rise of Worse is Better, Gabriel identified a "Worse is Better" (also the "New Jersey style" or "east coast") model of software design and implementation which has the characteristics (in approximately descending order of importance): >Simplicity The design must be simple, both in implementation and interface. It is more important for the implementation to be simple than the interface. Simplicity is the most important consideration in a design. >Correctness The design should be correct in all observable aspects. It is slightly better to be simple than correct. >Consistency The design must not be overly inconsistent. Consistency can be sacrificed for simplicity in some cases, but it is better to drop those parts of the design that deal with less common circumstances than to introduce either complexity or inconsistency in the implementation. >Completeness The design must cover as many important situations as is practical. All reasonably expected cases should be covered. Completeness can be sacrificed in favor of any other quality. In fact, completeness must be sacrificed whenever implementation simplicity is jeopardized. Consistency can be sacrificed to achieve completeness if simplicity is retained; especially worthless is consistency of interface. The MIT approach Gabriel contrasted his philosophy with what he called the "MIT/Stanford style of design" or "MIT approach" (also known as the "west coast" approach or "the Right Thing"), which he described as: >Simplicity The design must be simple, both in implementation and interface. It is more important for the interface to be simple than the implementation. >Correctness The design must be correct in all observable aspects. Incorrectness is simply not allowed. >Consistency The design must be consistent. A design is allowed to be slightly less simple and less complete to avoid inconsistency. Consistency is as important as correctness. >Completeness The design must cover as many important situations as is practical. All reasonably expected cases must be covered. Simplicity is not allowed to overly reduce completeness. Gabriel argued that early Unix and C, developed by Bell Labs, are examples of the worse-is-better design approach. He also calls them "the ultimate computer viruses".
Pulse · 2023-03-25 10:01
>MIT >west coast dude you lost me
Neuromancer · 2023-03-25 10:40
>>34553 Literally just what it always is. Money. Every decision that isn't just fluff is always made on money. Why is this so difficult to get? Even among people who seem to get this principle if you're discussing, say, politics or history or something will mentally compartmentalize it harder than a schizophrenic the moment you switch to talking about technology.
quote · 2023-03-26 18:27
>>34917 The Massachusetts Institute of Technology is in California
Wirth · 2023-03-26 20:31
>>34922 Yea what's ironic is that Berkeley (as in BSD) is in California, so Unix is both east coast and west coast. I guess someone wanted to make a rap battle out of operating systems.
Technician · 2023-03-26 20:35
>>34923 amusingly, berklee (college of music) is also on the east coast, just a bit further east from MIT.
藤原純一 · 2023-03-27 22:22
>>34917 Before the bad trip that is BSD was old enough to crawl the West Coast, especially SRI, had a reputation as MIT's estranged cousin. ARPANET was originally developed between Stanford, UC Los Angeles, UC Santa Barbara, and U of Utah using top-shelf MIT-area systems like Lisp pioneer BBN's IMP and TENEX and DEC's PDP-10. (Feedback from these and MIT's programs would culminate in the legendary DECSystem-20 with TOPS-20, one of the most coveted development platforms outside of the Lisp Machines themselves.) Then Berkeley decided it wanted to sit at the adult table, too, and spent the next decades overtopping with quantity what SRI had carefully built with quality up until then. From that fateful day, east coast now meant engineers who worked on caffeine, and west coast meant engineers who worked on LSD.
Nguoi La · 2023-06-22 14:26
>>34141 If you think that Java is awesome, why move to something else? The key, from my point of view, is to feel comfortable. And Java is quite a well production proved software.
Unidentified · 2023-11-11 13:33
>>34241 >First, read "Common Lisp: A Gentle Introduction to Symbolic Computation" by David S. Touretzky i tried reading this but it's the typical LISP book that assumes you're a babby who's just starting to learn about programming i hate this soykaf
↑ · 2023-11-14 00:36
>>37638 Are you the same anon I sent that message to a year ago? If so, I got the impression you'd just started school. Expression-based mostly-functional programming is different enough for beginners I think it's better to review the basics than hit the corner cases than can trip you up if you're still thinking statement-imperatively headlong. If not, and regardless, why not just move forward to the literal next book I recommended? Once you finish the introductory section SICP gets into the meat and potatoes of lispish programming very quickly. I wouldn't know because I started here, but I've heard both from self-taught working hackers that SICP taught them more than most other resources and from engineers with decent CS degrees that it brought clarity to topics they covered but didn't realize they didn't truly grok in school. Or if you just read the first chapter of SICP and your ego still feels put-upon, maybe consider jumping ahead again to any of the multiple books I recommended after that. Or if you're very smart, skip them all and jump into "Paradigms of Artificial Intelligence Programming" by Peter Norvig and "Common Lisp the Language" by Guy Steele (supplemented with the hyperspec for modernization). You've not just started to learn about programming, right? You'll be fine.
Leto Atreides I · 2023-11-14 04:37
>>37651 im not the person you were replying to, i was just sharing my experience with that book >If not, and regardless, why not just move forward to the literal next book I recommended? i am actually, Practical Common Lisp is on its way i did try to read SICP in the past but that too seemed too babby-esque to me
Dr. X · 2023-11-14 08:49
>>37652 > i am actually, Practical Common Lisp is on its way lain, do you want to study it together? ie read + discuss + share snippets, on IRC or similar
Rick Deckard · 2023-11-14 10:09
>>37653 i mean i wouldnt mind, we could try
Ivan Horvat · 2023-11-14 10:27
>>37655 what is your preferred pacing? I found the book online: https://gigamonkeys.com/book/ how many chapters are you expecting to read per week/day?
Spike Spiegel · 2023-11-15 04:31
>>37656 im going to be unemployed starting next week for a brief period of time, so my goal would be 1 chapter every day or every 2 days max
progn · 2023-11-15 06:08
>>37660 okay, let's do it I am Guest324 on libera chat
Cutter · 2023-11-15 15:09
>>37652 >>37653 You're both in time for the AoC, hope to see other CL chads in the thread that will inevitably pops up. PS: Use https://lispcookbook.github.io/cl-cookbook/ as complementary resource ("Editor support" is good before starting PCL) and learn to use alexandria/uiop fast, as these are almost part of the stdlib, these days.
Tomohisa "Tom" Kanezaki · 2023-11-16 07:25
>>37661 would you mind using Matrix instead? im not a big fan of IRC >>37662 thanks i'll look into it
Cutter · 2023-11-16 10:25
>>37667 sure, post your matrix
Tank · 2023-11-18 06:19
>>37668 @0x4bidden:matrix.org
Agent Jones · 2024-01-05 14:06
One possible suggestion can be give a try to Lua language, his syntax are kinda Java-alike and you can implement C/C++, which can help you a lot to familiarize with them and make your transition to these one day if you want it. Unlike Java, Lua is very friendly with Emacs ecosystem. As last words, Lua has an small official documentation and isn't so big in general, and many important programs uses Lua as their scripting language (like Wireshark, even many TI calculators use it for scripting and building apps). Another suggestion face to long term skills is learning assembly x86 among others, as well knowing more about FPGAs, electronics and hardware's of years duality, among with mathematical skills they are primordial to became a superb among the vast majority of the "coders gang"
Junichi Fujiwara · 2024-07-24 23:06
>should I stick with Java or should I move on to something else? First you need to evaluate if the feeling of frustration comes specifically from the languages you're trying or the fact that you didn't master it yet. There are some languages that are "harder" to like, I've never seen a R fanboy, for example. But at the same time I know that someone mastered R to the core and now R is their favourite language. I don't know you, so I can't be more specific than that. Sorry if I sound too "abstract" here... >>34142 >Java is probably the first language you learnt and it is thereby normal to feel comfortable using it. I second that. My first language was PHP, even though I don't work with PHP anymore, it's still the language I feel less frustrated because I basically know it very well. Today I can say that I also feel very confident with Rust and Ruby, but that took some time. It's been about a decade messing around with those languages (although zero job exp). The main reason I don't search for jobs with Rust or Ruby is because I fear to turn a thing I like into a thing I dislike. The languages I hate the most are Javascript and Python, coincidently those are the languages I work with.
Neuromancer · 2024-08-12 06:21
>>34141 Scheme and Python (and probably lisp i think) are dynamically typed languages which can be a frustrating change when you are used to a language like Java. I personally think statically typed is better anyway. Try C#, its quite similar to java. Anyone who has the misfortune of using bash would find that frustrating, the language is fuarrrked. C and C++ are kinda fuarrrked too. I've worked as a C++ dev. It's not you, its the language. https://www.theregister.com/2024/03/31/rust_google_c/
Delilah · 2024-08-18 17:51
>>39807 >and probably lisp i think Yes, it is. Scheme is very closely related to Lisp, and pretty much all of their major design choices are either the same or broadly similar.
fsociety · 2025-02-23 09:30
OP here. It's two years later and I got reminded of this thread, when I was contemplating using Java again today. I learned some C in the meanwhile and I quite like it, but more for ideological reasons rather than liking to program in it, which is not to say I don't like programming in it. As time went on, I got more invested in demoscene (without ever being part of any group or releasing anything) and looked at things like permacomputing, software minimalism, the whole suckless stuff and peeked into NetBSD/OpenBSD. As you might have guessed, knowing C is an essential skill for anything related to said things. I REALLY wanted to git gud at C, so I could also write minimal, small, resource-efficient programs. In particular the demoscene stuff bugged me for quite some while, as I found those things just incredible interesting and wanted to get into graphics programming myself. I learned C, learned graphics libraries like CSFML, SDL, GLFW and Raylib and tried doing some stuff. To my disappointment, it never came to a point, where I created something interesting. While I still find demoscene stuff interesting and still think software minimalism is a good thing, I eventually lost all joy in programming. I don't know what went wrong, but programming became a chore for me. I speak in the past, but that's more or less the state of things. I wish to create small, unix-philosophy-adhesive programs, but I just give up project after projects, because it's not really fun. So, I am back at square one, I learned a lot on the way here, namely some C, but I think I might try go back to my old Java and look how that is going. In that sense Java probably still is the only programming language I am comfortable with. It's most likely due to me being not as good as a programmer and probably needing what Java offers to be efficient. Some things never change, I guess.
Just another Random Lainon · 2025-02-23 10:44
>>41270 did you ever make a clear goal with programming if any? learning tools like these can quickly become a drug if you're not careful, and people often end up mistaking the finger for the moon. These are only tools at the end of the day, and they are useless if you don't have something useful to do with it. I got similarly tired of programming the day i realized i was just learning it because of idealisms (e.g. minimalism, free software, whatever the current thing is...) and the potential of it but never deciding what i actually wanted out of it. other more academic types will think one must learn knowledge for the sake of it, but given your burnout and your interests you look more practical than that. I don't mean knowing from day one what your end goal is, it's good to delve into things like graphic engines in C for the possible future gain from it, but for very nieche things i'd say be sure to know why you learn it and not just go at random where you end up finding your hands empty and your head heavy since time is limited and that's what makes me personally go into burnout.
push · 2025-02-23 12:45
>>41271 Generally speaking not, I was just interested in computers and as soon as I learned programming, it seemed fun to me and I kind of picked up whatever project idea I came across, however if you refer to whether I had a particular goal in mind when learning C and graphics programming in C, then yes, there I had a clear goal: I wanted to create a demoscene-esque animation. I still kind of want to do it, if I am being honest with myself, but all I know is some fundamental graphic library functions and some OpenGL and have no clue how to actually do those cool animations.
fsociety · 2025-02-23 12:50
>>39807 >https://www.theregister.com/2024/03/31/rust_google_c/ >people make mistakes >this is a problem >our solution solves this if done right >IF doesnt sound like they solved anything. And the end is about feelings... looks like someone blowing himself over his own decision to swap language
Delilah · 2025-02-23 13:04
>>41272 For demo-esque stuff, I tend to find older computers/consoles more fun. That requires learning APIs specific to these systems, or even writing assembly for the older machines.
Linda Lee · 2025-02-24 02:36
>>41272 maybe it's just an issue of not knowing where to get resources. personally just the prospect of having to look up stuff on search engines is often enough to get me into burnout. take a look at this: https://www.tastyfish.cz/lrs/3d_rendering.html it's a review of various rendering methods with a focus on C99 or C89. don't really pay attention to the wiki opinions, the author is a little "unique" for sure, but it's often the case with good tutorials.
Moore · 2025-04-21 19:23
Don't worry. Java is fine, especially modern java. If you're too reliant on OOP I'd advise you to use it less, but that's about it. Also, C++ and C are probably too much to handle for a new developer (as they are, as much as this hurts me to admit, a bit dated for modern paradigms). If you want something easy but still powerful and fast you might want to look into Go for example.
Yu-ichi · 2025-04-22 03:57
>>41836 imo C is refreshing precisely because it stayed unchanged. Thats what kept it small&simple. Its a cute little thing to play with when its just a hobby project.
William Holtzer · 2025-04-23 02:48
>>34141 Seeing this image of tomoko filled me with a weird kind of melancholy I remember not too long ago i was also a child who would wait for summer vacations, so that i could have fun and play videogames. It was fun, being sweaty and playing games on the family computer. The sense of comfort that was there because i had no responsibilities and obligations. I was truly free. I wonder if i can ever achieve that level of mental freedom. I'm a grown, employed man of 28 now. I like my job but it's boring sometimes. I care and worry about all these things that i really don't actually think are important
Aristóteles Amadópulus · 2025-09-18 20:24
Don't feel bad anon! Java is a great language and the JVM is an amazing dynamic platform. Really, all of the Java hate is unjustified. I'd much rather live in a world with Java having 80% of webshit backend share than in a world where for my webshit backend job I also have to learn Go, Python, Ruby, PHP and other soykaflangs that I hate. Much rather it be just Java, with the only niche competition being fair game better languages like Erlang, Common Lisp, Clojure etc. Java is good. Stick with it if it's comfortable to you and ENJOY every second that you love this language, since you can get a job with it and also love the job that you are doing. As an example, me, I hate everything beyond lisps and erlang/BEAM-based languages (with an exception being made to low level programming since no satisfying solution exists yet). And when I have to do my job with Go, all its clunkiness, incompleteness, incapacity for powerful abstraction, mind-numbing stupidity (it's a feature(TM)) etc., when I have to go through with the pain of it knowing it's not the lisp and not the erlang of my dreams with which I could literally make magic happen, my heart just breaks and I'm depressed and unproductive. I had a colleague, however, who was very passionate about Go. I really envy his capacity to be passionate about such a soykafty language which was designed to be soykafty. So, Java is good. Way better than Go. If you like it and if you like working in it, congratulations -- you have free happy tickets to the happy path in life. Cherish it while you have it. And don't let internet memes dictate what you should and shouldn't enjoy, don't let them create anxieties about being comfy with Java
Tank · 2025-09-19 04:24
>>34141 OP enjoys programming in Java OP is productive in Java OP hasn't found anything he likes better than Java and so, OP does the logical thing and starts a thread asking other people if he should stop using Java he does that in 2023 but the current year is 2025 presumably, OP still hasn't decided if he should stop using Java