I love the idea! I want to use it for a commercial product (start with self-hosting). However, I'm unsure how the License on the website (tambo.co/license) interacts with the MIT/Apache 2.0 on the GitHub repo. Could you shed some light on this?
Java was not rescued by Oracle. There was never any danger of Java going away or not having a proper sponsor. If anything was 'rescued', it was the SPARC/Solaris division of Sun.
>At the time, and that is still the case today, Sun / Oracle was the single largest contributor to the Java Ecosystem.
So what? What does that have to do with what I argued?
>Java will surely live but will it thrive without all those investment?
Are you really trying to make the argument that had Oracle not bought Sun, that Java, one of the most popular programming languages, would have gone away?
Heh. OK. Oracle clearly saved Java, the most popular programming language in the world, which also drives much of corporate and government infrastructure. We live in different realities. This idea is so silly I'm not even sure if you're serious, given that SUN's troubles at the time are a matter of historical record. Java was never the problem. In fact, it was SUN's most highly valued asset. SUN never recovered after the dot com crash and industry transition to x86 and Linux, all of which led to the death of SPARC and Solaris. But let's leave it at that.
>as proven by the high performance JIT and GC implementation available for Ruby and Python by the community.
It's almost like interpreted dynamic languages are not quite as conducive to the same kind of optimizations as a statically typed compiled language. JavaScript, another interpreted dynamic language, did have massive amount of resources poured into its JIT and GC implementation. No question there were meaningful performance gains. Is it faster than Java? No. Is it ever going to be faster? No, not unless the language compromises on its dynamic nature.
And you're still chasing this red-herring. I never argued that FOSS can do a better job at evolving a programming language runtime, than a corporate sponsor. Why are you harping on that as if that is an argument to support the idea that java was in trouble and needed a bailout from Oracle?
I made no statement about who contributed to Java and how much. So what does that have to do with anything?
Are you actually making the argument that had Oracle not bought Sun that Java, one of the most widely used commercial programming language then and now, would have .. what? Gone away? Disappeared?
> Basically you want free beer like Linux? Get a distribution from OpenJDK.
After the Oracle lawsuit, why should people feel safe believing that Oracle will respect the terms of the license instead of trying to extract more money and subject you to a costly lawsuit?
That's still not an answer. You're avoiding the question and... I don't know, answering some other question that no one asked, it looks like.
If a company has the option between OpenJDK and its "free" license or paying Oracle for a different license, why would anyone feel safe choosing the former, given that when you deal with Oracle, you deal with the risk of wasting as much money or more to defend yourself in court than the price of Oracle's paid option? Open source licenses are only as good as as the belief by the licensing party that the terms of the license mean anything.
Once again, you have avoided the question (although you've spiced it up this time with some additional condescension).
You listed OpenJDK as a viable "free" option. Defend it, or don't, but stop trying to pivot the conversation while pretending that changing the subject is a valid answer answer to the thing that was asked.
There is no confusion on this end. You're ignoring the question that I'm asking, because the answer is unpleasant, and you're instead responding with non-answers, because looking like you're saying something when you're really saying nothing is easier.
Facts: We have evidence that Oracle doesn't care about the actual terms of GPL. We have evidence that they're willing to subject people to legal turmoil if Oracle decides they want you to pay instead of using the "free" license.
> Defend it, or don't, but stop trying to pivot the conversation while pretending that changing the subject is a valid answer answer to the thing that was asked.
Every seems to be being snarky, but on the off chance you care about the actual pricing, and assuming you're talking about Oracle's JDK and not OpenJDK: Oracle's JDK is free to use. You can pay for support if you want, which gives you the bleeding edge security patches immediately (without support you can upgrade every six months to get the all patches). The pricing for support is calculated by CPU core count I believe. So if you're using Java in production on 100 cores, that's going to be more expensive than 10. I don't have the specific numbers off the top of my head though.
It's worth pointing out that with Oracle's new Java licensing model whether something is free on charge depends on a number of things including how Oracle thinks it's being deployed.
The Oracle JDK is indeed free of charge for developing aplications, but running that app using Oracle Java on a server as opposed to a desktop needs a paid license subscription & generates exposure to Oracle license audits.
Many, many firms are now using OpenJDK and the like, and have policies against even downloading Oracle's version.
I was not trying be to snarky. I was genuinely curious to know how it is priced after the oracle acquisition. As a language that I am most used to, I wanted to evaluate how much it'd cost (a rough estimate based on cores/users) if I were to launch a web service based on Java.
OpenJDK is Oracle's free, open-source implementation of the Oracle JDK. It is where Oracle does all of its JDK development. You can use it with no restrictions. If you want to pay for support, you can pay Oracle or any of several other companies that package up and support the OpenJDK. If you choose to pay Oracle, you'll get the Oracle JDK which is identical to the OpenJDK except for a couple of error messages and the ID string.
Not if you want to use Oracle's JVM to run something on anything but a laptop or desktop. They will absolutely want you to pay for that and will make sure you do.
Well, on the other hand OpenJDK is 99% Oracle's work repackaged.
If Oracle decided to stop putting out new FOSS-licenced versions, there would be no new OpenJDK releases (since all the core Java devs are Oracle employees).
So it's like a no-community project, where you get a dump of FOSS code every now and then from a vendor.
Oracle seems to pursue GraalVM EE as a way to monetize Java. It would be insane for them to change the license, piss off companies with deep pockets, risk a hard fork and see most employees working on the JDK leave.
>In recent Java versions, there's roughly 20% of external contributions:
Have to check your link to find out, but is it by number or by impact?
(Asking cause many projects have seemingly many "external contributors" but if one looks almost all real work happens by a core team, and the external contributors just do some change here and there, or even clerical work, like fixing comments and documentation and such).
The post measures by issue count, though not all issues are equal.
> Of the 2,136 JIRA issues marked as fixed in Java 15, 1,702 were completed by people working for Oracle, while 434 were contributed by individual developers and developers working for other organizations.
A correction - all the core Java developers are paid by Oracle to develop Java. I doubt that Oracle would win anything, by abandoning OpenJDK.
And now - they can't. Companies that are able to maintain Java are X times larger than Oracle and the core team would easily be rehired by IBM, Google, Aamazon, Facebook, Apple, etc...
None of the companies you listed would gain much over current model. They would rather move to different technologies in case Java is abandoned.
> Companies that are able to maintain Java are X times larger than Oracle
With exception of maybe IBM which anyway is crapping out, none of the other owe their business success to directly to Java based product or services. If Java were to be abandoned they can easily migrate / rewrite their internal tools / products to a different platform even if it takes 5-10 years. It is not like current prod systems will stop working just by announcement.
Also to think further Oracle abandons Java , Amazon and Google would have huge incentive to either charge lot more for Java on cloud or redirect their customers to alternatives.
> They would rather move to different technologies in case Java is abandoned.
They had the opportunity to do so for at least a decade now, but they didn't. Google, even after the massive row with Oracle, still uses Java extensively. Still has new projects written in Java(or running on JVM). Having a big legal battle between Google and Oracle would surely have dissuaded FAANGs from starting Java projects, right? Nope... You're flat out wrong.
> Java were to be abandoned they can easily migrate / rewrite
That's one delusional world you live in.
> It is not like current prod systems will stop working just by announcement.
And what makes you think that those big boys aren't going to be interested in maintaining JVM?
As opposed to which big open-source project? Do you really believe linux is a few individuals’ work? Just look at which companies pay the contributors.
The comments here at HN are quite harsh imho and I feel bad for possibly ruining someone's day. Is there a way for me to delete the submission?
I posted it on HN as I liked the points in the article. The points in the post are reasonable provided there's fair equity for the employees (which I believe is disclosed prior to joining - I have no knowledge about dilution, preference etc). I also agree with the commenters on HN that it doesn't make much sense when there's no equity.
But there are too many comments making the same/similar point.
I personally find what Alex is doing is inspiring, running a 200 person company (ref: article) at 23 is remarkable. I also applaud his courage to publicly share what he thought was best advice.
I might get downvoted for this but I couldn't not say this.
It should definitely be left up. It’s okay to have that world view at his age, and it is probably serving him well right now. I remember being 22-23 and wondering why everyone didn’t want to work 12 hours a day. Why were some leaving before 5, some came in late, some just in general did not give a shit. Here I was working hard not only to learn brand new systems, but build a disaster recovery plan, capacity planning, and production control scheme from scratch. And trying to finish my degree on the side. While I’m doing all of this, these shiftless people were making excuses about kids having to be places, or wives who wanted their husbands home, or people who always seemed to be sick. I didn’t understand.
I’m 47 now and I completely understand. Over time, I realized that there was life outside of work. Kids were actually fun to hang around, and my wife is my best friend. Not my job, and not my coworkers, the wife I chose to spend time with actually is fun to spend time with.
I get what Alexandr is saying, I really do. Except for the CEO bit, I had the same world view 25 years ago. And it’s a good world view for that age. However life will change, our experiences will broaden, and I feel he will probably have a completely different idea 20 years from now.
> Here I was working hard not only to learn brand new systems, but build a disaster recovery plan, capacity planning, and production control scheme from scratch. And trying to finish my degree on the side. While I’m doing all of this, these shiftless people were making excuses about kids having to be places, or wives who wanted their husbands home, or people who always seemed to be sick. I didn’t understand.
I think Brad Fitzpatrick described in Coders At Work or similar being frustrated about how people would clock out at the end of the day, when all his energy was invested in the company. And that it took him a while to realize that it comes with the territory of being a founder. You have a massive stake in the outcome, that employees aren't offered. The incentives are just wildly different, so it would be amazing if the behavior wasn't also wildly different. In fact, startup employees are often undercompensated, compared to their brethren at publicly traded firms.
> I get what Alexandr is saying, I really do. Except for the CEO bit, I had the same world view 25 years ago
Honestly I feel like if you're a founder of a company employing 200 people, you should have maybe just enough emotional intelligence to understand the motivations and incentives of most of those 200. Or be prepared to be replaced.
> The points in the post are reasonable provided there's fair equity for the employees
This is maybe a fair argument for a very small number of founding engineers, who start with multiple percentage points. The idea that it extends to employee 200 is a fantasy because you are asking them to commit to a degree that you will never be able to commit in them.
Give a shit about your employees first, and you will find employees that give a shit about you. Asking them to centre their lives around your company when you will easily sacrifice them at needs is deeply flawed.
>>> The points in the post are reasonable provided there's fair equity for the employees (which I believe is disclosed prior to joining - I have no knowledge about dilution, preference etc).
That's why you don't understand. Long story short, employee's equity is worthless because it will always be reduced to nothing by dilution/preference and even if the company grows a hundred fold.
There are only two people who benefit from a (very) successful company, the founder and the investor.
The first point of the article, that the founder expects employees to care about the company as much as him, is delusional. Folks here understand that because they've been burned before.
There's no reason for employees to care so much about a day job because they will get nothing beyond their regular salary. If anything they are risking quite a bit by working for a smaller company.
Personally, when I feel that a HN thread is too negative. Let them be. It's fine. In most cases, I don't think they feel bad. They simply express their opinion and are fine with expressing a negative one. You can especially tell when people reply to those people. While discussion may get polarized, it's still interesting to read on an intellectual level.
I think voicing your opinion and having food for thought is more valued on HN than most other communities I see. Whether that food is negative or positive, is simply another flavor.
While I voiced my disagreements with this article, I value the discussion (and to some extent the article). Whether I view an article as good or bad, in most cases I value the discussion much more than the article :P
I am sorry, I didn't make my question clear. I was not asking about 'frameworks' as in tools but templates/structures that you use while writing/thinking.
I am sorry, I didn't make my question clear. I was not asking about 'frameworks' as in tools but templates/structures that you use while writing/thinking.
Thanks for this! This is something I've been practicing of late. I realized that have a lot of problem in arguing the correctness of greedy algorithms. Do you have any recommendation for a collection of proof techniques useful for greedy algorithms?
Kinda depends whether by "correctness" you mean "proof". I always found Social Processes and Proofs of Theorems and Programs by Richard A. De Millo, Richard J. Lipton, and Alan J. Perlis inspirational.
I do not know of any collection of proof techniques that would be uniformly useful for greedy algorithms. If you discover such a collection, please share it with me.
Are there any books or resources your can suggest? I feel like my accuracy in thinking about corner cases have been stuck around 65% for a while and I'm looking for ways to improve.
I had to learn what we used to call “desk checking” when I started programming, out of necessity. Desk checking is reading through your code and “running” it in your head, keeping track of state on paper. You learn to notice edge cases because at every step you have to think about the next possible states. After some practice you get better at this and it becomes more automatic.
This isn’t practical for large code bases, but you can do it with individual functions and chunks of code. I still work this way but I don’t think it’s a common technique anymore.