Rescue server-side development in Dart (part 1)
Tags: dart, flutter
Published: 2021-01-25 18:02:20

I am not Dart developer for a long time. Most of my life I was developing in various programming languages like Python, Kotlin, JavaScript or C#. Every from these languages are nice and have a lot of good things (and maybe also some wrong things of course.. -> nothing is always absolutely perfect) 

I didn't know about Dart a lot and firstly I heard about Flutter that it is very nice framework for creating multiplatform UIs for mobile devices but I did't paid a lot of attention for this because I am not a mobile developer. But when I saw very fast increation of Dart language popularity in Github Graphs. It was curious for me and I decided to look more clearly in this way.

I was surpriced how Flutter framework is awesome and what allows to me. 
I believe that Flutter and [GetX ecosystem](https://pub.dev/packages/get) give me very powerful and beautiful way to create multiplatform applications with GUI. (Mobile and web for now, desktop in the future)

And Dart is very nice language like Kotlin or C#. It is not hard to learn it and is pretty simple.  
Of course Kotlin have some nice features which Dart doesn't but what I told a few lines upper:
"nothing is always absolutely perfect" ;) and I hope that Dart developers will hard work on other good things after finish Null Safety feature.

However Flutter is only one bright side which probably cause so fast growing of Dart language.  
How pity everybody is learning Dart only for Mobile development purpose and maybe also for a web frontend development.
But what about terminal UI (ncurses) or server side libraries? Of course something exists but 
mostly it is only oneman show where maintenance is very poor or nothing.

For example I tried find some nice server-side framework for develop Backend service or microservices and I found:

Aqueduct, Angel and Jaguar Frameworks as the most nice solutions but after deeper look I discovered that: 
- **Aqueduct** which is the most popular Server side framework on Github had only 100 commits for last 3 years, 
- **Jaguar** is also only one man show project where are not many updates for last 2 years. 
- And **Angel Framework** where was probably the most active development during 4 years is one year dead for now.

So at the beggining of 2021 year we don't have some fully supported or maintained backend framework in Dart.
Of course exists also Shelf maintaned by official Dart team, but somebody would like some more sophisticated solution like:

Spring in Java, 
Nest.js in JavaScript
ASP.NET in C#
Django in Python
Rails in Ruby
etc..


That made me think about Open Source software and developing of it..
Most open source software are only libraries or programs maintained by one owner mostly for free in their free time.
Everybody from us know how programming, testing and bug hunting consume our time and how difficult it can be.


But developing SUCCESFULL open source project is more demanding because that all is not about programming but also is important:

- Create pretty documentation
- Create examples and tutorials 
- Create blog articles for community
- Help with user issues (in github, stackoverflow, slack, etc.)
- And many other things depends on a project for create good community around the project.

Without this it cannot be successful because cannot be created good community supporting the project and without community support nobody will want to use the project in the business or other projects.


But all from this list is enough work for fulltime job and not only for programming in the freetime.
But who will want to do a fulltime job for free (without money)? 
Probably nobody. Maybe some students who want to gain some experiences during study of school or other folks which program it for fun already have some income from other activities.
But if we want to have some quality so we need work hard and for fulltime. Without it we will have only a poor quality of OpenSource software.

Of course exists many succesfull quality OpenSource projects but every is backed by some company who finances it for continual development. 

When some project don't have some financy income it is not stable for possible users which would like to use it and when some project has no users then will be dead early.
(Like Angel framework)

Maybe it can be cruel for somebody but in this world everybody need make some money for survival.
And nothing is free. Every activity cost us some time.
And if we want to have some quality programs we have to invest a lot of out time into development.


**Question is:** *Is Dart good language for Backend server side development?*

**My opinion is:** Yes it is, but nobody will use it because doesn't exists some reliably maintained tools, frameworks and libraries which can use without fear about their maintenance in the future.


**Question for you:** *Do you want to have also some libraries or framework for develop server-side applications in Dart?*


I believe that Dart is great language and can be in the top of programming languages between Python, Java, C#, JavaScript or Go.

With excelent toolkit as Flutter will be growing every day and will be strong concurrent to C# or Java but only when will have also some good support for Server side development like these languages.

Then will be young developers more motivated to learn this language because they will look what possibilities with Dart can have.

Then anybody cannot need know any other language because everything important will be already in Dart ecosystem. 
(mobile, desktop, web applications, server services or microservices, CLI programs and games https://flame-engine.org/)
And in compared with other languages Dart will be certainly great thanks to Dart syntax, multiplatform possibilities, performance, hot reload development, building to native or javascript code and possibility to use Flutter toolkit ;)

It can be great language forever. 
But must have a good ecosystem of libraries and frameworks.
Without it will be only poor sibling of languages like Java or C#.

[Continue in next article](https://dev.to/mjablecnik/rescue-server-side-development-in-dart-part-2-id6)