Live data from Hacker News

Jetbrains founders turn billionaires without VC help

bloomberg.com

501–510 of 530 posts

Re: Jetbrains founders turn billionaires without VC help

#501

if JetBrains people are reading this, I want to say THANK YOU! You saved lots of developer time with IDE, then Kotlin language. I use Golang, Python and Database IDEs, and they are really nice and time saving, can't imagine how much time you guys saved to Java developers where everything is reflection based annotations and deep level of abstract class/interface implementations. (last time when I worked with Java in V…

Jetbrains products are amazing if you _need_ and IDE. Otherwise you're much better off using VIM or Emacs as they are open source, have tons of customization and plugins available and also they are simply lighter, faster and are available on all unix platforms.

Since I've been testing both on linux on an older laptop (Core i5-3317U, 10GB RAM, Sata SSD): Emacs + lsp (Omnisharp) is not noticably faster than JetBrains Rider. Both are slow and at times lagging on this hardware. In the end I just use Rider on that laptop since if it's lagging either way, Rider is still a more complete C# ide for me. My laptop from work is a Dell Precision (Core i7-7820HQ, 32GB RAM, NVMe SSD) and is more powerful: it's a pleasure to use Rider on that machine.

Re: Jetbrains founders turn billionaires without VC help

#502
post #451

Earlier quoted context omitted.

Current model still isn't perfect as you only get the version that existed when your sub starts not when it ends. So if your sub expires you actually have to downgrade the product to an old version. Before if you bought a major point release you would get all minor point releases as upgrades. Now you don't even get any bug fixes that occurred since your sub started. I love their products though.

Well, I think it's fair. If there was no subscription model, this would be the same as buying the version that was available at the time of your purchase. Everything that gets released after that is only a teaser that nags you to continue your subscription. You don't need to update.

Before the licensing change if you purchased a major version such as 5.0 you would get all upgrades for free until 6.0. This was the change that caused the uproar because that was no longer the case.

Re: Jetbrains founders turn billionaires without VC help

#503
post #465

Earlier quoted context omitted.

Modern Java has nowhere near the developer ergonomics of C#, I can tell you that much. You are still manually writing tons of boilerplate, you still cannot express something as simple as List (and the JSR for that is on its, what, 8th iteration? for a problem that existed since before C# existed ?), there is no async/await in 2020 when even C++ has figured it out, the new module management system is a joke that solve…

I’m a huge fan of C# and how Microsoft has been improving .NET recently but as a C# fan I think you’re being a little unfair to Java. It has a slightly different perspective on language evolution than C#, in that they try to keep the language core smaller. I was overwhelmed by syntax when I first started programming C#, from all the different kinds of parameters (optional, named, ref, out, in) to all the different ki…

I am not saying Java's model of never adding important things is better or worse. I might now say it is worse, but that wasn't the point I was making - I was simply responding to a comment saying Java has added important things, when it hasn't.

Also, auto-properties are binary compatible with computed properties, whereas public fields aren't, and you can use 'ref' on a public field whereas you can't make a ref to a property.

Re: Jetbrains founders turn billionaires without VC help

#504
post #493

Earlier quoted context omitted.

> This is definitely more verbose and arguably uglier, but it hews closer to the object-oriented style because it’s visibly falling a method on an object. Of course this is happening in C# as well, but it’s hidden by syntactic sugar. It's hard to appreciate how addictive the sugar is if you never had it. Frankly, language level auto properties -alone- would get rid of 25-33% of the pain I feel writing Java. Of course…

Lombok fixes most of the getter/setter issues. It is also supported in IntelliJ

However bad the Java situation is, Lombok as a solution is worse. It uses unsupported and undocumented APIs of the compiler, it autogenerates code that is in some cases flat wrong (like the infamous enum @ToString), and it does this through a mechanism of the language specifically designed for pure metadata - code that compiles with annotations should not cease compiling without them. And, because of the way it does what it does, IDEs must have explicit Lombok support built into them. It is, effectively, a different language that's a superset of Java; at that point, you may as well actually use a superset of Java like Groovy, and then you don't have tools prone to breaking.

Re: Jetbrains founders turn billionaires without VC help

#505
post #484

Earlier quoted context omitted.

> This is definitely more verbose and arguably uglier, but it hews closer to the object-oriented style because it’s visibly falling a method on an object. Of course this is happening in C# as well, but it’s hidden by syntactic sugar. It's hard to appreciate how addictive the sugar is if you never had it. Frankly, language level auto properties -alone- would get rid of 25-33% of the pain I feel writing Java. Of course…

I think from an object-oriented design perspective that it's quite easy to overuse public field members and that a lot of getters and setters is generally a code smell. Nonetheless, properties are a very sharp tool and having them in the toolkit is wonderful. I've never used Scala but it seems to go much further in the syntactic sugar and semantic complexity direction, more akin to F# than C# (though with less elegan…

There have been many iterations of 'Java except it doesn't suck', but which all were extremely similar to Java - Xtend, Groovy, etc. So when Scala came onto the scene, even though it was a serious functional language and encouraged a very different style of programming than Java, it was seized on as a 'Java except it doesn't suck' language because it was much more different than previous ones and so felt more like a fresh start. The sentiment hasn't died yet, although Kotlin should at this point be treated as the official 'Java except it doesn't suck' language, since it's designed directly for it, is different enough, and has mainstream adoption.

Re: Jetbrains founders turn billionaires without VC help

#506

Earlier quoted context omitted.

FWIW I once had a VC tell me to use a certain IDE because it “automatically generates unit tests for you” I nodded politely and said “right, always nice to have test stubs laid out..” and was promptly corrected that it does in fact generate the whole test for you

Was it this maybe? https://www.diffblue.com/

Nope, it was Visual Studio, circa 2012.

Re: Jetbrains founders turn billionaires without VC help

#507
post #465

Earlier quoted context omitted.

I’m a huge fan of C# and how Microsoft has been improving .NET recently but as a C# fan I think you’re being a little unfair to Java. It has a slightly different perspective on language evolution than C#, in that they try to keep the language core smaller. I was overwhelmed by syntax when I first started programming C#, from all the different kinds of parameters (optional, named, ref, out, in) to all the different ki…

I am not saying Java's model of never adding important things is better or worse. I might now say it is worse, but that wasn't the point I was making - I was simply responding to a comment saying Java has added important things, when it hasn't. Also, auto-properties are binary compatible with computed properties, whereas public fields aren't, and you can use 'ref' on a public field whereas you can't make a ref to a p…

I realize there are differences between fields and auto-props when using certain other features, but from a design perspective, these are identical within an assembly:

  public int Foo { get; set; }
  public int Bar;
Java has absolutely made important improvements, and there are even more impressive ones on the horizon. In particular you should look at Project Loom, which is Java’s answer to async/await. It’s not finished yet because the design is much more general and novel, and it avoids the “function color” problem that async/await has. It’s inspired in part by Erlang/BEAM’s green threading system.

You might also look at the JDK flight recorder, which is an amazing feature that .NET doesn't have. The Java perspective is adding complexity to the runtime fiest instead of the language.

Re: Jetbrains founders turn billionaires without VC help

#508
Java w/o IntelliJ would be miserable.

That said, I hate their nonsensical keybindings for (my) most common uses (looking at you function keys). I also wish their plugin API was more stable. A lot of great plugins seem to require a lot of maintenance work release to release.

Re: Jetbrains founders turn billionaires without VC help

#509

Earlier quoted context omitted.

I think in this case you’re holding the tool wrong. When you want, for example, an array of (float x, float y) “objects” in Java, you just keep them as two arrays (float[] x, float[] y) — and I guarantee it will use the same amount of memory and will have nearly the same speed as C++ (depends on what cache locality you need for a specific task, it might even be faster to have two separate arrays for some tasks). So y…

That would be a workaround, but it annoys me when you have to make a workaround for something that is available in the language it set out to replace. And if you are doing something like nearest cluster mapping, or anything else where you process your data in linear order you are not going to get the optimized cache locality. Plus you can't read the file with mmap if your data is from there.

I agree that Java is not the best tool for things like analyzing mmap'ed data. Java replaces C++ by being better in some things, not all.

I would go further and say that if your job is analyzing terabytes of memory-mapped binary files, maybe C++ is not optimal either, and investing in specialized languages like Shakti/K would pay off quickly.

Re: Jetbrains founders turn billionaires without VC help

#510
post #493

Earlier quoted context omitted.

Lombok fixes most of the getter/setter issues. It is also supported in IntelliJ

However bad the Java situation is, Lombok as a solution is worse. It uses unsupported and undocumented APIs of the compiler, it autogenerates code that is in some cases flat wrong (like the infamous enum @ToString), and it does this through a mechanism of the language specifically designed for pure metadata - code that compiles with annotations should not cease compiling without them. And, because of the way it does…

I’m not a huge fan of libraries that use attributes as a hook for code generation in C# either, though thankfully there’s less need for something like Lombok.
Post reply on HN