731 karma · joined July 13, 2016
Jeff Martin jeff@reportmill.com http://reportmill.com
:-)
The big challenge was having to write most of a UI kit to basically abstract Swing. But there is a surprising symmetry between basic Swing+Java2D and HTML 5.
You are a hero - I hope this project really takes off! I dare say this is even better than Java Web Start (before it became hopelessly broken).
Demos: https://www.reportmill.com/snaptea/
Repo: https://github.com/reportmill/SnapKit
There is a lot of benefit to this - fast, traditional desktop development with great deployment. It also has built-in developer tools and online access to a UI Builder. I hope this could make Java Client development interesting again.
I need collaborators to help write demos and improve the kit.
Jeff at ReportMill dot com
I think some of the reason for this is because I succumb to some of what makes me a better software dev: ADD/OCD. I prioritize my life like I clear my plate: one item at a time. But work is a never ending task, so somehow I never get to priority number 2.
I will try to internalize the idea of work being a rubber ball - I hope that image will stick with me for those times I need to remember to let that ball drop.
But here is what I would say: pick the smallest of tasks that is part of the larger work and convince yourself it's okay to only get that part done today. Also convince yourself that it's okay to do a 'Mad Dash' on it - focus on making progress, not making perfect. Save the edits and polishing for when you are in the zone.
This is how I get myself to the gym a few times a week. So many times I've told myself it's okay to just go for 10 minutes (and then sit in the hot tub :-). But once I'm there I almost always do my full regimen (which is only 45 mins).
So maybe that is my strategy: only focus on 'getting started', not on getting done.
As a sometime UI designer, I think I understand the goal of the update: Elegance, simplicity, a less cluttered design. I do think this is at odds with functionality, however. Being a side screen without conventional tactile controls, it is important that essential functionality not be buried under multiple levels of clicks/menus, to limit the distraction time.
So while it looks cleaner now that the seat warmer control is tucked away, it is also more dangerous. I suppose this is balanced by the new feature that I can no longer be tempted to play video games while I drive, though.
On the subject of Elon, I bemoan that celebrity has been detrimental to him and the company. He clearly enjoys the spotlight and has an elevated sense of worth, which shouldn't even be possible. Shove enough microphones and cameras in a person's face and ask them enough questions outside their area of expertise, and it's almost impossible to keep them from thinking they are the most amazing person who as ever lived, "EVERY THING I SAY MUST BE GOLD!".
I started as a southern developer 30 years ago, but in Texas I was considered a hippie. When I moved to Silicon Valley to fix that, I was considered too much of a Texan. After 10 years in CA we went back to Texas which felt more like home, but paradoxically was more isolating, because I knew very few software developers (working for myself). I must have thought this adventure in Chicago was going to be my happy medium.
So I wish you continued good luck in Minnesota. Say hello to Al Franken and Garrison Keillor for me (two Minnesotans I've enjoyed listening to for years).
Admittedly it would be harder for you. But I would point out that CS has the most value when paired with real knowledge in another discipline. At Texas A & M in the 80's, CS was one of the only disciplines to have a minor - I assume because they, too, realized it needed good pairing. I got my CS degree in 2 years by doubling up the required classes (and by already having sufficient electives).
My first job further makes this point. I was fortunate to sneak into Steve Jobs NeXT Computer. I was surprised that CS majors were actually in the minority. The head of software at NeXT (and Apple before), Bud Tribble, was a former MD (his wiki is sparse, unfortunately - otherwise might have helped). My best friend in engineering was a biology major.
A final source of inspiration might be the "Sunscreen Song (everybody's free)" with the lyrics, "The most interesting people I know didn't know at 22 what they wanted to do with their lives. Some of the most interesting 40-year-olds I know still don't".
I think there is time for you, and if you focus on embracing your gained education instead of replacing it, you could have a very interesting career.
As for young engineers, they are overrated. I was terrible (though prolific) at 30. At NeXT I had several mentors in their 40s and 50s. For most of us proficiency has to be earned. I feel like I'm finally there (with maybe 5-10 years to spare). Ageism does exist though - I do think it's hard to change jobs at this age. Mostly because I think hiring managers are confused when interviewing people with more years and experience than themselves.
Having said all that, I do feel like a long career focused on engineering has been a little dehumanizing. I sometimes wonder if I had satisfied my logical brain with something like a medical career, maybe I would feel a stronger connection to my fellow humans. But there again, maybe you can find a great balance by straddling the fence.
In any case, good luck!
The first is that I have learned how to read again. It is amazing how much the iPhone, internet, youtube and binge TV has wrecked my attention span. I'm not back to my old ability to spend hours with a book, but I'm much improved. I think the 'win-win' nature of being entertained while practicing a skill has upped my perceived value of spending time this way.
The second is that I feel much more confident in social situations now, because I know I am at least adept at using my vocal cords to communicate complete sentences. My vocabulary has also improved - I think for years there have been plenty of words that I knew but was subconsciously afraid to use. Now that so many advanced words feel more comfortable coming out of my mouth, I find they come to me easier in conversation.
Another thing is that I feel smarter and sharper. That is probably because I am back to reading books again. I also feel like this is a virtuous loop, reenforcing the other benefits and the overall habit.
I do have the benefit of a UI abstraction - my UI kit runs on Swing/JavaFX on the desktop, and on HTML/DOM (canvas based) in the browser.
This post links to the TeaVM version. TeaVM is also awesome - but it has a reduced runtime, conditional compilation and better built-in DOM support. The whole app + runtime is 1.2mb (compressed) and loads in seconds (instantly once cached).
There's a product called CheerpJ that compiles Swing apps to the browser. I'm not sure when/if we'll see JavaFX.
My app cross compiles to JVM and browser easily now, but I did a lot of work on the SnapKit UI framework, which is like Swing but abstracts out graphics and user input. My app used to be all Swing - that would be almost impossible with TeaVM. There is product called CheerpJ which does Swing with almost no modification, but it has a larger runtime.
When you think about it, iOS and Android apps are desktop apps (in full screen mode), not browser apps. And they may be more popular than web apps, for now (though I hate the toll imposed on them).
Maybe someday soon, you'll be able to click on a web app and turn it into a desktop app, with better native platform integration. That might be a reason to stop desktop development.
And I agree: if your app only needs to run in the browser - use browser tools. But if you really use an app all day long, you're going to want a dedicated desktop version. The browser app-in-an-app model is convenient for casual use, but not optimal for long stretches and doesn't integrate as well with the desktop for real workflow.
Also, if your app exceeds 100k lines of code, there are some languages that might be better than JavaScript.
It's unfortunate Oracle hasn't adopted the approach of treating the browser as a target platform. TeaVM and CheerpJ have just a couple engineers working on this and they've done great things. A fully supported effort could really make this take off.