Create React apps using Kotlin
github.com
github.com
Kotlin right now is a serious competitor for a full stack, any device language. An alternative may be F# which has Fable for Browser, Xamarin (mobile) and .net core for server. But Kotlin looks more integrated to me.
Coming from a C#/F# background, Kotlin is really a joy to use.
Or maybe j2Objc
One codebase for both platforms is not necessarily what you want though.
Let me rephrase, it might be what you want for a pretty small app : if you have to create an app for a restaurant with orders and menu, a cross platform solution is probably the best use of your time.
For anything bigger, it becomes a harder sell. All these solutions tend to have the same downsides :
- limited access to new platform features. Especially damaging when Apple tells you that you are going to get featured if you do a Watch app but your SDK does not support that yet.
- one design does not scale well to two platforms with different UX and features.
- one more layer of abstraction to manage; making maintainability harder
I think that there is clearly a space for a cross platform business logic framework though. It tends to be the same on both platform with minor differences. It is a pity that only j2objc seems to clearly target this. k2objc/swift would be awesome.
https://blog.jetbrains.com/kotlin/2017/11/kotlinconf-keynote...
I'm currently a typescript user and I like what VS code has going on with attaching to chrome and providing debugging within the ide. Source maps are okay but a seamless experience in the source language is better. Does the kotlin IDE have facilities for debugging what is going on in the browser?
Reason through the code. Sometimes, reason through the output assembler (in case the C code is making invalid assumptions). Stare at oscilloscope traces. Think really hard about what's happening, come up with a hypothesis, and test that hypothesis.
The hypothesis testing part is key. I've worked with embedded developers who "fix" a bug by making a code change, but can't at all explain why the change is likely to fix the bug. In many cases, the reason it seems to fix the bug is that it changes the timing just enough so that the bug happens less frequently, but without having a really solid causal explanation, it likely just means that it's going to be even harder to find the bug when it pops back up again.
Once when developing with the 8051 family (using a development board that included a debugger), the program worked perfectly on the dev board, but when I burned it onto EEPROM, a subtle timing issue with a peripheral caused the program to fail. Much frustration ensued; had to develop that section with a long winded code->compile->burn->test cycle. Then we found out the particular 8051 variant we were using had been discontinued :(
and their response, on their forum, was that they are intentionally make hard to avoid the jetbrains ide while using kotlin
now technically you still can, kotlin is open source, and you can download it standalone, if you search hard enough
i am not really sure, how jetbrains think kotlin will help it long term to increase its sales .. but this seems to be one of their objectives .. they did not create kotlin just for the sake of it (and nothing wrong with that)
Remember that the community edition is open source
They are an open company and do offer a lot completly for free
Borland was .. a very traditional closed company
One of the great things about Borland was they published the source code to their VCL (their main platform library Delphi and C++ builder applications used). So you could read, learn from, troubleshoot and debug with the source code. At a time when Microsoft and most companies didn't.
And the VCL design patterns were/are incredibly elegant, and studying them an excellent and accessible way for an interested programmer to learn some real software architecture skills.
Very weird; what happened ? In java/kotlin it is as great as ever in Android Studio
FWIW I've never found IntelliJ code completion in Javascript, Ruby, or Python to be very accurate. It's fantastic in Java and Typescript.
do you have a link for this?
As alternatives they suggest their online REPL (to play and learn without installing anything), IntelliJ (unsurprisingly their favourite), gradle, or maven. The latter are about as fully-fledged build systems as you can imagine and are easily used with any editor.
I'm sure there will be gradle plug-ins available for VS.Code or Atom, or a gradle mode for emacs.
The Vue.JS community would beg to differ.
But yeah, if JetBrains could implement something like the Rust Language Server for Kotlin I would be so happy.
Vue's reactive nature actually is superior, because something like Redux requires destroying, regenerating, and messaging around entire objects. This can create serious problems when, for example, trying to use Chrome APIs or manage component renders.
Also, although JSX is nice for developers, it's not friendly to designers. Vue, however, supports single file components that are very designer-friendly.
FWIW, Alibaba began creating their own native framework with Vue called Weex, which is now part of the Apache project. https://weex.apache.org/
http://www.npmtrends.com/angular-vs-react-vs-vue-vs-@angular...
Even more so when you consider that Vue itself is a React clone underneath. Templates compile directly into createElement calls internally and if you'd strip off Vue's outward complexity, the api surface, the syntax parsers, the observable system, etc., what would remain is React.
Every time I set aside a few hours to do a React tutorial, I'm defeated by the stack.
I'm very late to docker. I always liked the idea, but didn't have the immediate need. But Python, trying to fix bugs in someone else's project, has now made that need urgent.
After spending WAY TOO MUCH TIME getting the exact right constellation of stuff installed. Switching from macports to homebrew, preinstalling the native libs, wiping all the misc failed python runtimes and starting over, bootstrapping pip, oops I screwed up once with sudo and now a hidden cache under /var/private/root is borking dependency resolution.
FFS.
I really hated Java & maven until I got a nodejs gig.
I really hated nodejs & npm until I had to fix someone else's python.
When does it get better?
Nix everywhere?
If you want to try using React without any build tooling or process at all, the main suggestions are:
- Use an online IDE like https://codesandbox.io , which is a complete online editor that lets you write React apps, view them in the browser, and even make use of NPM packages . CodePen and StackBlitz are other good choices for online editors.
- Create an index.html file with three script tags for React, ReactDOM, and the Babel transformer. There's a pre-written example at https://raw.githubusercontent.com/reactjs/reactjs.org/master... .
If you do want a local project with the right build setup, the official Create-React-App tool will create projects with the build config abstracted away: https://reactjs.org/docs/installation.html
So, while the recommended way to use React is with a full build process (which lets you use the JSX syntax for rendering components, other modern JS syntax, and produces a proper bundle for deployment), you don't have to learn Webpack or Babel as a prerequisite for learning React.
In Python 3. The pip and venv stuff is built-in and works much more smoothly. (But I realize that this doesn't help you on an old Python 2 project.)
(That would be one reason, I'm sure there might be others.)
Other than that, if your backend is kotlin then you can potentially share (non JVM dependent) business logic code with the backed. Same goes for android clients. Same interfaces can be be used in client and server.
Of course Swagger/OpenAPI doesn't preclude using the same language on the client and server side, so one could always combine "isomorphic" approach with the "service definition" approach.