Kotlin

Kotlin

Application and Data / Languages & Frameworks / Languages
Node.js Software Engineer ·

In our company we have think a lot about languages that we're willing to use, there we have considering Java, Python and C++ . All of there languages are old and well developed at fact but that's not ideology of araclx. We've choose a edge technologies such as Node.js , Rust , Kotlin and Go as our programming languages which is some kind of fun. Node.js is one of biggest trends of 2019, same for Go. We want to grow in our company with growth of languages we have choose, and probably when we would choose Java that would be almost impossible because larger languages move on today's market slower, and cannot have big changes.

READ MORE
17 upvotes·1 comment·253.7K views
max budnick
max budnick
·
July 9th 2020 at 3:29AM

thank you for sharing.

·
Reply
AVP - Business at VAYUZ Technologies Pvt. Ltd.·
Needs advice
on
Node.jsNode.jsPythonPython
and
RailsRails

Hi Community! Trust everyone is keeping safe. I am exploring the idea of building a #Neobank (App) with end-to-end banking capabilities. In the process of exploring this space, I have come across multiple Apps (N26, Revolut, Monese, etc) and explored their stacks in detail. The confusion remains to be the Backend Tech to be used?

What would you go with considering all of the languages such as Node.js Java Rails Python are suggested by some person or the other. As a general trend, I have noticed the usage of Node with React on the front or Node with a combination of Kotlin and Swift. Please suggest what would be the right approach!

READ MORE
Neobank - Wikipedia (en.wikipedia.org)
22 upvotes·265.6K views
Replies (9)
Recommends
Serverless

Use the language which works well for the developers you have or have available. If you're starting, building a first iteration is far more important than worrying about what language might be best to solve a problem you may never have.

When hiring, look for developers, not "node developers" or "java developers" having people who recognise and are willing to adapt means you can have the flexibility you will need to solve as-yet unforeseen issues. Hire people who are wed to a specific language and you will be bound to that language, regardless of whether it's most appropriate or not.

READ MORE
42 upvotes·1 comment·30.1K views
Shivam Bhargava
Shivam Bhargava
·
March 26th 2020 at 7:43AM

Hey! Thanks for the response. I do agree with this line of thought, currently I do have an established team of Folks who are pretty good at NodeJS and related stacks (MEAN, MERN, Meteor etc.) along with expertise in Flutter, Native Apps along with AWS as well. I think this would constitute the core App and then integrations all across can take place. Would you have any reading material on the Serverless front in relation to Neobanks / Digital Banking platforms? Thank you.

·
Reply
Recommends
Rails

For online banking, it'll be less computation intensive and more data intensive. So, Rails will be better than Python. I'll not recommend Node.js as it's not as scalable as those. If I had to choose indepently I would took Go.

READ MORE
19 upvotes·5 comments·30.1K views
Mikael Sand
Mikael Sand
·
March 27th 2020 at 9:48PM

What measurements do you base the scalability conclusion / comparison of python, ruby (rails), and nodejs on?

·
Reply
Shaswata Das
Shaswata Das
·
April 1st 2020 at 12:46PM

nodejs maintains concurrency by events, it's common sense that a single thread would never be able to equivalent of multi-thread.

Now, let's talk about Ruby vs Python.

Python requires the developer to be clean about side effects and isolation. With Ruby one can write concurrent programs that operate on multiple cores easily, similar to Python, a developer is responsible for side effects and isolation issues. Python’s concurrency process is more resource-demanding as compared to Ruby. But then again, it boils down to developer coding habits if one has to take the cake offered by both Python and Ruby Performance languages.

·
Reply
Mikael Sand
Mikael Sand
·
April 1st 2020 at 3:55PM

Seems like a banking system would have its scalability depend more on the transactional database in use, rather than the choice of language used for the api layer, which probably just translates from/to http+json or whatever transport and message standards used, to some atomic sql / db query in a transaction and serialising the response. Seem unlikely there would be any need for shared memory multi-threading in the api layer. Node.js could probably be used just fine, e.g. with PostGraphile on top of PostgreSQL. It seems very unlikely to be the bottleneck.

·
Reply
Shaswata Das
Shaswata Das
·
April 2nd 2020 at 8:59AM

In case of online banking, bottleneck may occur. I'd rather prefer isolated hybrid database API, that'll better than PostGraphile. For security issues, I'll not recommend any GraphQL API in online banking application, also it'll not be helpful in this scenario. It's true that "a banking system would have its scalability depend more on the transactional database in use", but when it's about online banking it's not only about transaction, I bet, they've more to offer to their clients. So, scalability on api layer is also important for this case.

·
Reply
Varun Sharma
Varun Sharma
·
April 22nd 2020 at 9:51AM

Brother I have been working in Ruby on rails and nodejs from last 3 years. From my experience it is easy to scale nodejs as compared to Ruby and it even requires less resources for deployment as well. This was one of the reason why linkedin shifted their stack from Ruby on Rails to Nodejs.

·
Reply
View all (9)
CTO & Co-founder at Bonton Connect·

We actually initially wrote a lot of networking code in Kotlin but the complexities involved prompted us to try and compile NodeJS for Android and port over all the networking logic to Node and communicate with node over the Java Native Interface.

This turned out to be a great decision considering our battery usage fell by 40% and rate of development increased by a factor of 2.

READ MORE
7 upvotes·2 comments·275.2K views
Robin Mollah
Robin Mollah
·
June 23rd 2020 at 5:52PM

A way to decrease battery consumption by 40% is a great finding. Java and Kotlin are pretty complex in terms of handling the networking side.

·
Reply
Sunny S
Sunny S
·
July 16th 2020 at 4:06PM

Hi Jamal,

Can you explain the difficulties in using kotlin. I intend to use Kotlin, does it support Grpc . I am using Lagom Microservices FW and Gridgain IMDG as universal grid. and Java ofcourse with some assetson Spring. What are the better options in full stack Flutter , Nest>React>Backend{Spring boot}, or Angular>React>Backend or RUST orone should go with GoMicro completley.

·
Reply

Hi

I’ve been using Django for the last year on and off to do my backend API. I’m getting a bit frustrated with the Django REST framework with the setup of the serializers and Django for the lack of web sockets. I’m considering either Spring or .NET Core. I’m familiar with Kotlin and C# but I’ve not built any substantial projects with them. I like OOP, building a desktop app, web API, and also the potential to get a job in the future or building a tool at work to manage my documents, dashboard and processes point cloud data.

I’m familiar with c/cpp, TypeScript.

I would love your insights on where I should go.

READ MORE
Not Your Average QS - Web Development and QS Blog (Notyouraverageqs.com)
7 upvotes·224.3K views
Replies (3)
Recommends
.NET Core

Theres a logt going on in the dotnet world. I currently do all my Rest APIs with asp.net core.

The Setup is very easy as the .net web sdk provides with a lot features you don't want to keep yourself concerned with. You can integrate Swagger with little effort.

READ MORE
10 upvotes·134.1K views
Researcher at Florida Institute of Technology·
Recommends
Spring Boot

Spring Boot is the lightweight of the Spring framework. I used the Spring framework before, and I fall in love with the Spring Boot. I also use .NET core, but still, I like Spring boot the best. If you have time then you should experience both. You are more than halfway in gaining experience. My suggestion is always to try to learn many things as you can.

READ MORE
6 upvotes·136.7K views
View all (3)
Needs advice
on
React NativeReact NativeReactReact
and
Node.jsNode.js

I'm researching what Technology Stack I should use to build my product (something like food delivery App) for Web, iOS, and Android Apps. Please advise which technologies you would recommend from a Scalability, Reliability, Cost, and Efficiency standpoint for a start-up. Here are the technologies I came up with, feel free to suggest any new technology even it's not in the list below.

For Mobile Apps -

  1. native languages like Swift for IOS and Java/Kotlin for Android
  2. or cross-platform languages like React Native for both IOS and Android Apps

For UI -

  1. React

For Back-End or APIs -

  1. Node.js
  2. PHP

For Database -

  1. PostgreSQL
  2. MySQL
  3. Cloud Firestore
  4. MariaDB

Thanks!

READ MORE
11 upvotes·105.7K views
Replies (7)
Recommends
Flutter

My Recommendations: Front End: Flutter because of developer tooling and powerful declarative widget system Back End: Node.js or Go because Node.js has a large ecosystem and Go has a good built in http setup Database: Cloud Firestore because of ease of use, NoSQL, and the ability to set data from the client

READ MORE
14 upvotes·2 comments·10.7K views
anandarao493
anandarao493
·
July 27th 2020 at 4:46PM

Thanks, since Google cloud Firestore is a NoSql database, I'm wondering how does it work for an app where it does daily transactions in a user checkout flow, etc.. ?

·
Reply
awesomebanana2018
awesomebanana2018
·
July 27th 2020 at 5:50PM

I'm not entirely sure what the question is about, as I don't see any problem using Cloud Firestore for transactions, but here is a use case for using Firestore with stripe: https://firebase.google.com/docs/use-cases/payments

·
Reply
FullStack Dev ·
Recommends
Node.js

If you go with react / react native I advice you to go with node. Why ? I first didn't believe coding in javaScript everywhere (back, front and db queries) was making life SO much more easy. I still followed the advice, in the end this is a huge relief. For a small startup project with 1/2/3 devs, using only one langage increases efficiency a lot. You can switch very fast from a topic to another.

READ MORE
8 upvotes·9.1K views
View all (7)
Needs advice
on
ReactReactNode.jsNode.js
and
MongoDBMongoDB

Hello,

I will be programming my project in the coming months. I would need advice on the technology I will use.

I focus mainly on mobile apps, so it's clear there that it will be a native app written in Kotlin.

I will also need a backend (database, API). In the database, I will need to store words and their translations along with users and some statistics to start with.

I don't know which database to choose, whether NoSQL or SQL. Maybe NoSQL would suffice for some words and key-value data.

I would like to connect the web and a chrome extension to that backend. I assume that chrome extensions are made in JavaScript and I would use either Vue.js, AngularJS, or React on the web. The web would be quite simple, some flashcards, statistics, and so on ... I don't know which framework would be ideal, I've never done it, I'll be basically learning it. Ideally, also where you need as little CSS as possible.

With that backend, I have a dilemma as to which framework to use. Basically, it will be such a new for me, I just played with Flask a little bit, but It doesn't matter. Basically, everything runs on JS except the Android app. So is it advantageous to choose Node.js on the backend? I have no experience with this, is it an advantage when everything runs in almost one language? I also thought about Flask / Django, but I also quite like Node.js since it's in JS. But I'm open to all the possibilities of .NET, Spring .... What would be your choice?

To summarize: Android App - Native app in Kotlin Chrome Extension - JavaScript (I don't know if it can be done in anything else) Web - Vue, Angular or React and that's JavaScript Database - SQL / NoSQL? - I don't know which is more suitable, or some specific types Backend - the dilemma of what language and framework to use

I'll write everything myself, it's a project for school, but I want to move it to a higher level and release it. If it doesn't work out, at least I'll learn something. Thank you for the answers.

READ MORE
9 upvotes·78.9K views
Replies (2)

Let's start with the database. First, in my experience, there are few applications where choosing a document database (NoSQL) over a relational database (SQL) is advantageous. While document databases are conceptually very straight forward, I find the tradeoffs down the road are simply not worth it (I wont get into all the details here, but please do some research on the downsides of NoSQL databases). If your data storage needs were exceedingly simple, I might reach for something from the Google Firebase suite, Realtime Database or Cloud Firestore; but I find even simple storage needs tend to expand and grow over time as your application matures. Postgresql is an excellent choice, and an absolute powerhouse for a ton of applications. With the somewhat recent additions of hstore, json, and jsonb datatypes, the advantages of reaching for a pure document datastore melt away.

For the Chrome extension, I would probably favour going for something a bit more lightweight than React or Angular. I'm a huge fan of React, but it comes with a somewhat hefty download, so if it were me, I might reach for Vue instead on that one. React is better for bigger, more complex single-page applications, whereas Vue is probably a better fit for simpler applications which require a smaller set of components.

For the backend, I would pick something mature with a strong and active community. Flask is a nice choice, but I've felt a bit "on my own" when using it in terms of community/documentation. I've used Rails extensively, but the learning curve is a bit of a headache; the time you'll save using Rails is very much down-the-road rather than immediate. If you're comfortable already with Javascript, then node + express is probably your best bet.

But, let me change my tune a little bit. You mentioned that this is a school project. In light of that fact I suggest you gravitate towards languages and frameworks that will help grow your career. Making smart choices based on the requirements of the task at hand is always prudent, but in this case I think it may be more valuable to gain some experience with some of the current "industry standard" stacks. Ask yourself what you can build a career on, and dabble in some of those areas until you find something that clicks for you. So, here are my revised answers, with options for each category ranked in order of preference

  • Database: PostgreSQL, MySQL
  • Backend: Node/Express, Rails, Django, Spring
  • Frontend: React, Angular, Vue
READ MORE
10 upvotes·9.6K views
Director of Technology at Crowd Emotion Ltd·

Hi Karin, I really liked your take on this whole school thing, I'm amazed you want to put such a huge effort in it.

And please appreciate your project is a lot to take and it can also be a lot to do: the risk is going beyond the assignment for the sake of exploring technologies, architecture styles, desing patterns, and so on, just for the sake of it (don't take me wrong, I've done it all my life).

So my first advice, as quite an experienced software developer, is always go back to some fundamental principles before starting anything, before thinking to anything, and perhaps the most important principle of all is KISS: Keep It Simple and Short (search it up, there are a few versions of what those letters represent :) ). In your case, since it's a school assignment, simplicity is even more important because it makes things clear which makes learning so much more effective.

When dealing with complex tasks like this, another fundamental element is focus: where should you keep your attention when designing and then developing a software product?

In this specific case, I lack what the original assignment was requesting, but I'm quite sure the point (or one of the points) was to make you think and then act on something that didn't require months to be developed, it was to make you learn how to accomplish a task without getting lost in details or in a project too big to be finished in a finite time.

I may be wrong, but I'll keep this in mind when writing the below lines.

FIrst, the architecture of the software product looks like a classic three tiered one: frontend, backend, database. Keep in mind another fundamental principle here: the separation of concerns, which leads to different decoupled architectural elements. Also, just for clarity, the frontend(s) will talk only with the backend, while the backend will talk with the database: this will help you isolate the database from the frontend, ideally enabling you to change database technology if needed.

Second, you explained you want to go web and mobile for the frontend tier: this inevitably will lead you to the conclusions you pointed out correctly, having to choose a number of platforms and languages to basically create the same application, but the fragmentation of different knowledge and procedures can make your life quite complicated and probably miserable.

Personally I'd go for native Android and React for web. Recently, though, I stumbled upon Flutter which, through the same codebase (in Dart, very similar to JavaScript) can create for you applications for mobile (Android and iOS) and the web: I tried it and I've been blown away by the effectiveness and easiness of using it.

For the backend, keep playing with Flask and build a RESTful API, all in all python is a language way more readable and maintainable than JavaScript, and with node.js is so easy to fall into the callback hell (recently less and less but still). Stay away from Java and its ecosystem if you want to finish you project at all (just kidding).

On the database tier, remember NoSQL databases can be quite powerful, but in your case try something very simple (redis can do), or just go with MongoDB as it makes easy to start and evolve your data structures. If you're more the structured type and you want to go RDBMS, try postgresql, it's easy to start (it has also NoSQL features) but so much more powerful and you could learn real SQL on it (stay away from the omnipresent MySQL, it's kind of odd sometimes).

I hope the above didn't sound too much of a lecture, and I also really hope you learn the most important lesson of all: always keep in mind the big picture!

READ MORE
7 upvotes·9.5K views

Greetings Guys,

I want to develop an E-Commerce app and a web app.

For E-Commerce App ( Cross-Platform) - Thinking of React Native instead of Flutter or Kotlin Multiplatform

For Web App - Thinking of ASP.NET Core

My thoughts -

a) ASP.NET is really good for a big enterprise-level application like Java. So it should be great for an eCommerce app website for large customers.

b) Since I don't want to develop two different apps for android and iOS, cross-platform will be good. Will save budget and time. React native is popular with its support and libraries. So it seems good.

(P.S. - I might be biased because I know ASP.NET. But will welcome your insightful Answer).

So Is it a good choice - for a web app and a mobile app? Let me know if you think I should use other stacks for mobile and web?

For Database, Is Microsoft SQL Server appropriate? Which database should I select - SQL database or NoSQL Database? Please provide another option apart from SQL Server.

(P.S - I know SQL Server is used for Big banking services. So it can handle a large number of transactions. If I am wrong, please correct me.)

Thank you in advance :)

READ MORE
4 upvotes·34.4K views
Replies (2)

Hi, if you already knows ASP.NET you should consider nopCommerce, as it's an Open Source platform for e-commerce. It's easy to setup and customize, and you should learn a lot using it. Also, if you are familiar with C# you should use Xamarin to develop a mobile app.

READ MORE
4 upvotes·4 comments·10K views
Arslan Ameer
Arslan Ameer
·
December 29th 2020 at 12:09PM

Well .Net Core is no doubt very strong. But nowadays we have many easy options to develop and deploy right away with too much variety of technologies and platforms. For cross platform with asp.net, xamarin suit that stack. But if you are into reactive native then why not considering React or complete stack for Web, mobile and Desktop. you still can write APIs in .net if you want to.

My choice of stack in this case even though i am a beginner too would be, Angular, Electron & ionic. Apis on node express.

·
Reply
The NewBie
The NewBie
·
January 4th 2021 at 12:17PM

Thank you for advice! :)

·
Reply
The NewBie
The NewBie
·
January 4th 2021 at 12:17PM

Thank you for advice! :)

·
Reply
Anastasiia Komarova
Anastasiia Komarova
·
January 21st 2021 at 10:43AM

Hey, we've been working for quite a while with E-Commerce related apps and platforms in terms of files uploading and processing. Maybe you'll find it useful as well. Feel free to check out our case with Shogun https://uploadcare.com/customers/shogun/

Or just drop me a line and we can discuss in detail how we could help :)

·
Reply
Needs advice
on
MongoDBMongoDB
and
FirebaseFirebase
in

Hello there, I plan to develop an android app (Kotlin) for my final year project but not sure which back-end service to use. Since it will be a small-scaled app to be used within my university campus, which one would be better to go with? Thank you so much.

READ MORE
2 upvotes·113 views
Replies (1)
Développeur iOS ·
Recommends
Firebase

Firebase is a all in one package for mutiples API ready for you. Perfect for a small project and free. No need to code for a backend! Firebase give you almost evwrything to begin a new dev project! MongoDB is only a NoSql database, you must code backend separetely and others features. Firebase use also a NoSql database with Realtime or Firestore.

READ MORE
4 upvotes·1 comment·133 views
Pras Maran
Pras Maran
·
December 30th 2020 at 6:56AM

Thank you so much for your advice. Firebase does look great for my project scope. I am already playing around Firebase console to get familiar with the features.

·
Reply
Needs advice
on
RustRustKotlinKotlin
and
JavaJava

I was thinking about adding a new technology to my current stack (Ruby and JavaScript). But, I want a compiled language, mainly for speed and scalability reasons compared to interpreted languages. I have tried each one (Rust, Java, and Kotlin). I loved them, and I don't know which one can offer me more opportunities for the future (I'm in my first year of software engineering at university).

Which language should I choose?

READ MORE
10 upvotes·124.9K views
Replies (8)
Recommends
Kotlin
Java

I will highly recommend Kotlin. I have worked with all three intensely and so far the development speed and simplicity is the best with Kotlin. Kotlin supports coroutines out of the box. Now, it isn't something that can't be implemented in other languages but Kotlin makes it super easy to work with them. Kotlin has a bit of learning curve, so, by the time you can actually use it idiomatically chances are that you will get proficient in Java too. But once you get it, you get it, then there is no other language ;) Kotlin is backed by Google and Jetbrains team so you can expect latest programming features and good community support.

READ MORE
10 upvotes·1 comment·105.9K views
Adrian Challinor
Adrian Challinor
·
March 11th 2021 at 8:54AM

Dev Stack makes some good comments. Kotlin does have a learning curve, but once you have learnt it you will develop quality code faster.

·
Reply
Software Engineer at hyphenOs·
Recommends
Rust

I'd say Rust's knowledge will be more valuable in comparison. You can work in Blockchain development, compile to WASM (WebAssembly). There is a new JavaScript/TypeScript runtime named Deno (by the creator of Node.js) that has its backend in Rust.

READ MORE
4 upvotes·96.8K views
View all (8)
Needs advice
on
KotlinKotlinF#F#
and
C#C#

Hi there. I want to expand my coding toolset. So I want to learn a second backend language besides Kotlin. Kotlin is fantastic. I love it in every aspect, and I think I can never return to Java. And also why should I? It is 100% interoperable with java and can co-exist in every project.

So my question here is. Which language do you think will bring me more joy? I think F#; it is more like Kotlin. Then C# (it's more or like 100% java). But, let's say I learn F#. Is it 100% interoperable like Kotlin? can they live side by side? Can I, then, apply to .NET jr jobs after a while, for example, or is C# the holy cow? I would like to learn .Net.

If it is the worst and only C# is acceptable, then which language should I learn? Dart? Go?

READ MORE
4 upvotes·77.9K views
Replies (3)
Recommends
Kotlin
C#

Exceptional decision to go with Kotlin. For the other story, go full with C#. "is C# the holy cow? Yes it is.". Specially now when netCore is crossplatform and you can build asp.net core applications on Windows, Linux and macOS via Visual Studio Code which is also multiplatform. Nothing will beat C# in the near future. Also, at the end of 2021 Microsoft will release Net 6.0 which will include MAUI.

"For those new to .NET MAUI (standing for .NET Multi-platform App UI), Microsoft says it's "the evolution of Xamarin.Forms extended from mobile to desktop scenarios with UI controls rebuilt from the ground up for performance and extensibility."

So, C# all the way sire!

READ MORE
4 upvotes·68.8K views
Recommends
C#

animefanx1,

First let's get your questions sorted: Which language do you think will bring me more joy?

This you will have to decide for yourself, I am a long time C# developer and have seen it grow into a very compelling platform. The language and I'd compare it more to Kotlin than Java (by a long margin). More on .NET in a bit.

say I learn F#. Is it 100% interoperable like Kotlin?

You can have 100% interop with a caveat, your F# libraries have to implement certain guidance in order to be referenced from C#. Some (dare I say most) of the differences between F# and C# are predicated on language constructs that are not available in C#. For instance F# functions that return Unit.

can they live side by side?

Yes.

Can I, then, apply to .NET jr jobs after a while, for example, or is C# the holy cow?

I don't know if I take your meaning, but let me say this: Learning either C# or F# will likely force you to understand concepts such as garbage collection, primitive types, etc. which apply to all .NET languages, thus a lot of the effort you put into .NET is bound to pay off regardless of your choice.

If it is the worst and only C# is acceptable, then which language should I learn? Dart? Go? You can't go wrong with any of these and I venture to say whether you select C#, F#, Dart or Go as your next adventure, your willingness to learn will take you to try other languages, some which mey not even exist yet!

PS1: .NET is an end to end environment now. With the introduction of Blazor and Razor pages one does not need JavaScript or other browser scripting languages, it even interops with JavaScript. PS2. Microsoft is working on unifying .NET. Soon there will be only one version: .NET 5! Caveat: Some features such as WinForms will still be specific to the windows environment but all of those are likely things you don't need in Mac or Linux

READ MORE
4 upvotes·1 comment·68.6K views
Kranael
Kranael
·
February 8th 2021 at 11:54AM

Ok thanks for the advice - really thanks :-)

Concepts like garbage collection which don't exist in C++, I know and primitive types are also a thing in java. I came from java (suprise ^^) and moved to kotlin because I like that the language is not bound to the jvm ecosystem. Also I'm more productive with less bugs in my code, because clever compiler don't let me assign a null to a variable and some other stuff. Not writing - if (x != null) ... anymore.

The language and I'd compare it more to Kotlin than Java (by a long margin) <-- In which kind? For example the syntax is more Kotlin in F# it has range expression and so on.

Like that: F#

let function1() =

for i in 1 .. 10 do

printf "%d " i

printfn ""

function1()

Kotlin:

for (i in 1..10) {

println(i)

}

And the classic one:

C# and Java really similar

for (int i = 0; i < 5; i++)

{

Console.WriteLine(i);

}

Sry for the syntax here but i would understand why it is more like Kotlin? Or did you mean F# and not C#?

Last question:

You say it can live side by side -> Lets say i know after a long time enough F# would I be able to apply to .NET / C# Jobs? When I say in an Interview yes all fine for me, but you should know I write F# not C# code? Is it acceptable for company's?

I really like the idea from Microsoft to unify all the frameworks so no .NET Core, ASP etc. only .NET 5 :-)

Thank you for your time in advance :-)

·
Reply
View all (3)