Programming thread -

ConcernedAnon

Concerned and hopefully anonymous
kiwifarms.net
I've been doing some android development recently, and of course that means Java. Due to it's similarities to C# it wasn't hard to learn, but my god has it been frustrating. It's easy to use sloppily, but hard to use efficiently due to it's limitations. The main issue that really get's my goat is the lack of value types, nearly everything has to be allocated on the managed heap, which means lots of needless collections. That's just scratching the surface though, the language is septic all the way through.

I do find it pretty funny how nicely designed Android Studio is though. It's probably the best designed IDE I've ever seen even if it's scope is kind of limited, and yet, all this for the purposes of polishing a turd to a mirror finish? Fucking really? Next time you're making a SDK use a language that wasn't designed by cave dwellers for god's sake. It's a repeated theme it seems though, there's gotta be a billion JVM languages whose premise is "Java but somewhat less shitty".

No matter how much they polish their turd, it'll still smell like one.
 

Coolio55

DON'T CALL LUIGI AT 3AM!! *OMG HE RICKROLLED ME*
kiwifarms.net
I've been doing some android development recently, and of course that means Java. Due to it's similarities to C# it wasn't hard to learn, but my god has it been frustrating. It's easy to use sloppily, but hard to use efficiently due to it's limitations. The main issue that really get's my goat is the lack of value types, nearly everything has to be allocated on the managed heap, which means lots of needless collections. That's just scratching the surface though, the language is septic all the way through.

I do find it pretty funny how nicely designed Android Studio is though. It's probably the best designed IDE I've ever seen even if it's scope is kind of limited, and yet, all this for the purposes of polishing a turd to a mirror finish? Fucking really? Next time you're making a SDK use a language that wasn't designed by cave dwellers for god's sake. It's a repeated theme it seems though, there's gotta be a billion JVM languages whose premise is "Java but somewhat less shitty".

No matter how much they polish their turd, it'll still smell like one.
Don't worry. Fuchsia is gonna be even better!
At least SOME people use java.
 

z.svg

Don't tread on z.
kiwifarms.net
I've been doing some android development recently, and of course that means Java. Due to it's similarities to C# it wasn't hard to learn, but my god has it been frustrating. It's easy to use sloppily, but hard to use efficiently due to it's limitations. The main issue that really get's my goat is the lack of value types, nearly everything has to be allocated on the managed heap, which means lots of needless collections. That's just scratching the surface though, the language is septic all the way through.

I do find it pretty funny how nicely designed Android Studio is though. It's probably the best designed IDE I've ever seen even if it's scope is kind of limited, and yet, all this for the purposes of polishing a turd to a mirror finish? Fucking really? Next time you're making a SDK use a language that wasn't designed by cave dwellers for god's sake. It's a repeated theme it seems though, there's gotta be a billion JVM languages whose premise is "Java but somewhat less shitty".

No matter how much they polish their turd, it'll still smell like one.
Android Studio is just intellij with a bunch of android stuff preloaded. They use to use a similar one that was eclipse based and it literally gave people cancer. They could probably make intellij a lot better if they just didn't use the jvm...
 
  • Informative
Reactions: ConcernedAnon

Smaug's Smokey Hole

kiwifarms.net
The only programming languages I'm kind of fluent in are QBasic and TI-83 BASIC from the '90s...

(at least I can make retro-style stuff)
A buddy got decently deep into making a text adventure(with ascii graphics) using a single .bat file, make with what you know as a hobbyist and smashing your head into the ceiling and realizing why your code is unwieldy garbage doesn't make you dumber.
 

Smaug's Smokey Hole

kiwifarms.net
why not both?

(you can use GIMP to convert images into text (like ASCII art) which could then maybe imported into a batch file?)
Yes, but it would be easier and more desirable to use the dither brush in Photoshop for control of the output or creating your own drawing routine. Try SDL or something it's not that hard.

Look at The Crimson Dimaond, low res, low color, all wonderful (with a text parser). It was made by a woman who just thought it was fun to make scenes in that type of style and she ended up making a game.

Really good interview actually, it's 90 minutes with mostly bad sound, but she explains how she came to be the programmer of a none game project she drew art for, for fun!
 
Last edited:
  • Informative
Reactions: ToroidalBoat

Coolio55

DON'T CALL LUIGI AT 3AM!! *OMG HE RICKROLLED ME*
kiwifarms.net
A buddy got decently deep into making a text adventure(with ascii graphics) using a single .bat file, make with what you know as a hobbyist and smashing your head into the ceiling and realizing why your code is unwieldy garbage doesn't make you dumber.
I like text adventures. I'm currently writing one in python to satisfy an idea I had when I was around 13 or so. Might also write a ruby port too.
 
  • Semper Fidelis
Reactions: Safir

ConcernedAnon

Concerned and hopefully anonymous
kiwifarms.net
Android Studio is just intellij with a bunch of android stuff preloaded. They use to use a similar one that was eclipse based and it literally gave people cancer. They could probably make intellij a lot better if they just didn't use the jvm...
I wasn't aware intellij was an actual IDE, I thought it was just the system powering the refactoring but wow that cheapens the Android Studio.
Has google ever actually made their own shit or do they always just copy other's work?
 

Safir

True & Honest Fan
kiwifarms.net
I wasn't aware intellij was an actual IDE, I thought it was just the system powering the refactoring but wow that cheapens the Android Studio.
Has google ever actually made their own shit or do they always just copy other's work?
They didn't "copy" IntelliJ for Android, they hired JetBrains (:heart-full:) to make and maintain an Android-specific version of IntelliJ that'd be free to the public. JetBrains' Kotlin is now the preferred language for Android development. Since you worked with C#, you probably heard of ReSharper - that's their product, too.

I highly recommend their products. I bullshitted my way into Java development with IntelliJ Community and was (for a time) at the top of my vocational training C++ class thanks to CLion. I now use PyCharm Professional on the daily (bullshitted my way into Python development with the t-shirt they sent me for completing a survey) and other stuff (minus Ruby and C#) from time to time. A yearly subscription buys you permanent access to the latest version at the start of the year, and access to updates through the year. Personal licenses can be used at work if your employer doesn't compensate you for it. There are also educational licenses and startup discounts, and people who get caught trying to crack a paid product get a 40% discount for that product for the first year (saw this happen in Oct 2018 ).
 

Shoggoth

kiwifarms.net
@cecograph @Yotsubaaa @3119967d0c @Spooky Bones Let's move our Lisp sperging to this thread
Continuing on Yotsubaaa's post I see your post and raise by a Paul Graham
While we're talking about Lisp a bit, I remember reading that old 'Lisp Curse' article a while back (https://archive.li/L7Y0W). It was a pretty interesting take they had: that the reason Lisp doesn't enjoy the success of more mainstream languages is because Lisp is too powerful, and that the programming language itself is a magnet for super-autists that can't play nice with each other.
http://www.paulgraham.com/avg.html https://archive.li/G6l9q
So if Lisp makes you a better programmer, like he says, why wouldn't you want to use it? If a painter were offered a brush that would make him a better painter, it seems to me that he would want to use it in all his paintings, wouldn't he? I'm not trying to make fun of Eric Raymond here. On the whole, his advice is good. What he says about Lisp is pretty much the conventional wisdom. But there is a contradiction in the conventional wisdom: Lisp will make you a better programmer, and yet you won't use it.
In short, you SHOULD use Lisp and if a pointy nosed manager says NO they're probably wrong. Like the NASA JPL guy observes, most common practices != best practices.
 

Marvin

Christorical Figure
True & Honest Fan
kiwifarms.net
@cecograph @Yotsubaaa @3119967d0c @Spooky Bones Let's move our Lisp sperging to this thread
Continuing on Yotsubaaa's post I see your post and raise by a Paul Graham

http://www.paulgraham.com/avg.html https://archive.li/G6l9q

In short, you SHOULD use Lisp and if a pointy nosed manager says NO they're probably wrong. Like the NASA JPL guy observes, most common practices != best practices.
"Lisp isn't a language, it's a building material." - Alan Kay

`Schemer: "Buddha is small, clean, and serious." Lispnik: "Buddha is big, has hairy armpits, and laughs."` - Nikodemus Siivola (no clue who this guy is, but I like this quote)

and finally

"In Lisp, if you want to do aspect-oriented programming, you just do a bunch of macros and you're there. In Java, you have to get Gregor Kiczales to go out and start a new company, taking months and years and try to get that to work. Lisp still has the advantage there, it's just a question of people wanting that." - Peter Norvig

Personally, I love Scheme but with a lot of ideas (including CLOS) stolen from Common Lisp. (Actually, one time I implemented a mini CLOS clone in Scheme. It was a lot easier than I thought it would be, also mind blowing because once you get to a certain point, you can start implementing more and more in the OOP system itself.)

Awhile ago I was putting together a little 2d platformer game engine in Scheme as a talking point for this thread, but I got sidetracked by all sorts of other bullshit. And now work is killing my free time. But I might pick it up again. It was going to cover how to do some simple 2d graphics in OpenGL, and a few other things, plus a few unique features like a live scheme listener, so you could fiddle with game objects remotely while the engine is running.
 

Shoggoth

kiwifarms.net
"Lisp isn't a language, it's a building material." - Alan Kay

`Schemer: "Buddha is small, clean, and serious." Lispnik: "Buddha is big, has hairy armpits, and laughs."` - Nikodemus Siivola (no clue who this guy is, but I like this quote)

and finally

"In Lisp, if you want to do aspect-oriented programming, you just do a bunch of macros and you're there. In Java, you have to get Gregor Kiczales to go out and start a new company, taking months and years and try to get that to work. Lisp still has the advantage there, it's just a question of people wanting that." - Peter Norvig

Personally, I love Scheme but with a lot of ideas (including CLOS) stolen from Common Lisp. (Actually, one time I implemented a mini CLOS clone in Scheme. It was a lot easier than I thought it would be, also mind blowing because once you get to a certain point, you can start implementing more and more in the OOP system itself.)

Awhile ago I was putting together a little 2d platformer game engine in Scheme as a talking point for this thread, but I got sidetracked by all sorts of other bullshit. And now work is killing my free time. But I might pick it up again. It was going to cover how to do some simple 2d graphics in OpenGL, and a few other things, plus a few unique features like a live scheme listener, so you could fiddle with game objects remotely while the engine is running.
Groovy. Which Scheme implementation were you using? Chez seems pretty based.
`Clojurian: "Buddha wears bow ties, and probably stripes"`
I'm spoiled and now I want first class reader support for vectors, maps and sets, and immutability by default
 

Marvin

Christorical Figure
True & Honest Fan
kiwifarms.net
Groovy. Which Scheme implementation were you using? Chez seems pretty based.
`Clojurian: "Buddha wears bow ties, and probably stripes"`
I'm spoiled and now I want first class reader support for vectors, maps and sets, and immutability by default
I was using Chicken Scheme. It compiles to very fast C code and uses a very interesting strategy for handling tail recursion (tied up in how it implements its gc too). I particularly like its ffi. The most annoying thing is to be using a c binding that someone else wrote, one like opengl or sdl, and find that they forgot to wrap some function (or maybe the function was added in a later version) and you can't even wrap it yourself because the pointer types between the existing library and your little helper patch are incompatible. So because of that, I always need a good ffi in a programming language, in case I want to wrap my own version of opengl or whatever. And chicken's ffi is fantastic. I can just compile shared libraries from scheme code with ffi macros in it and load them into a repl like they're ordinary scheme code.

I've also done some stuff with chibi scheme, which would be a nice byte code scheme for a game that would otherwise be mostly in c. Heh, if I was working for some big triple A game studio, that's what I'd use instead of the pseudo javascript garbage every big gamedev seems to use.
 

Shoggoth

kiwifarms.net
I was using Chicken Scheme. It compiles to very fast C code and uses a very interesting strategy for handling tail recursion (tied up in how it implements its gc too). I particularly like its ffi. The most annoying thing is to be using a c binding that someone else wrote, one like opengl or sdl, and find that they forgot to wrap some function (or maybe the function was added in a later version) and you can't even wrap it yourself because the pointer types between the existing library and your little helper patch are incompatible. So because of that, I always need a good ffi in a programming language, in case I want to wrap my own version of opengl or whatever. And chicken's ffi is fantastic. I can just compile shared libraries from scheme code with ffi macros in it and load them into a repl like they're ordinary scheme code.

I've also done some stuff with chibi scheme, which would be a nice byte code scheme for a game that would otherwise be mostly in c. Heh, if I was working for some big triple A game studio, that's what I'd use instead of the pseudo javascript garbage every big gamedev seems to use.
Similar to foreign-lambda, but instead of generating code to call an external function, the body of the C procedure is directly given in STRING ...:
UNHOLY MOTHER OF A THOUSAND YOUNG
All I got to show is the nanopass compiler, which is pretty cool - framework to encode languages and transformations in scheme. The idea is that compilation passes should do one thing and be well defined. Example on how you'd use it to generate C:
 
Tags
None

About Us

The Kiwi Farms is about eccentric individuals and communities on the Internet. We call them lolcows because they can be milked for amusement or laughs. Our community is bizarrely diverse and spectators are encouraged to join the discussion.

We do not place intrusive ads, host malware, sell data, or run crypto miners with your browser. If you experience these things, you have a virus. If your malware system says otherwise, it is faulty.

Supporting the Forum

How to Help

The Kiwi Farms is constantly attacked by insane people and very expensive to run. It would not be here without community support.

BTC: 1DgS5RfHw7xA82Yxa5BtgZL65ngwSk6bmm
ETH: 0xc1071c60Ae27C8CC3c834E11289205f8F9C78CA5
BAT: 0xc1071c60Ae27C8CC3c834E11289205f8F9C78CA5
LTC: LSZsFCLUreXAZ9oyc9JRUiRwbhkLCsFi4q
XMR: 438fUMciiahbYemDyww6afT1atgqK3tSTX25SEmYknpmenTR6wvXDMeco1ThX2E8gBQgm9eKd1KAtEQvKzNMFrmjJJpiino