DEV Community

Discussion on: PHP. is it so bad? 2022 check and comparison with other languages

Collapse
 
joelbonetr profile image
JoelBonetR 🥇 • Edited

My bad! 😅 ionic was the word instead flutter, let me fix the post, thanks for pointing it out, much appreciated!

The rest of the comment is more like a question and if you ask me I may need more details like how many experience do you have, previous studies and what are you coding now (platform, target...)?

As a generic response:

Learning thousand languages won't make you expert on a single one.

If you want to target web -mostly- while being able to deliver something for smartphone world (or even desktop) you can go ahead with different languages:

  • JavaScript (as covered in this post) also lets you provide PWAs that can be delivered "as is", or you can also publish your PWA inside Google Play Store and lastly you can, optionally wrap it inside a web view to deliver an iOS app or simply use react-native, ionic, cordova or whatever other FW exists for that.
  • You can go through other paths like C#, see Multi-Platform App UI.
  • Java is a different world. As this guy states in this SO question "There are advantages to knowing Java in 2022, but cross-platform mobile development isn't one of them." (Moreover Kotlin is the official language for Android Apps 😁).
  • C++ is probably more powerful overall but also harder to develop with and maintain, narrower market share and adds some burden to the development process. Moreover you need to pay for some frameworks license such QT
  • Lastly, Dart is a client-oriented language which I suspect is the reason for them using it in Flutter instead Go (server-oriented language).

TL;RD: If your target is multiplatform then Javascript and/or C# are the best options IMO.

Collapse
 
lexiebkm profile image
Alexander B.K.

My background is on desktop non-web, beginning with FoxPro for DOS :):) , which ran both in stand-alone PC and in LAN-Novell Netware. I then switched to VB6, SQL Server, Crystal Reports for developing desktop apps for about 12 years :) , VB.net for only about 1 year. During those years, I actually began to find interest in Java and C#, but couldn't make it into reality.
Knowing that desktop non-web started to become "dead" (like some people said), I turned to web dev using PHP, Laravel for back-end, with HTML, CSS, Javascript and React for the front-end. I only have experience in web dev for about 2 years, being a lone developer, handling a project called Performance Management System which mainly dealt with the so called Key Performance Indicator (KPI), usually used for measuring performance of employees in a medium-large corporation.
Seeing that there are quite a lot of jobs that require Node.js, I began to learn it, although couldn't learn intensively, because I still need to explore PHP and Laravel more, for the same reasons : market demands.
From what I read, Java and C# are still in demands too. But, between these two, my priority is Java. Maybe I will get started with C# someday, depending on my motivation, mood and time.

Knowing that Qt was not free, I have tried GTK for building a small GUI in C++ and found it interesting, but didn't continue because there were other things to do.

Thread Thread
 
joelbonetr profile image
JoelBonetR 🥇

If you have experience on desktop, also in VB and also some in .net framework... why don't you jump directly to C# .net?
The environment will be the same than using vb.net, the language itself is quite similar to Java and the use-cases for using it are many.
i.e.
.Net features web development as well as Multi-platform so you don't even change the framework if your scope changes, just use some package or another depending on the use case.
Also you can develop video-games targeting desktop, android and/or iOS using C# in Unity.

With your background and your will to learn something to code for any target it will be THE CHOICE 😂

Thread Thread
 
lexiebkm profile image
Alexander B.K.

It's between Java or C#. Actually I want both. I know that C# is quite similar to Java, but deep in my heart, like I said, I want to finish my learning in Java first, up to the level I consider sufficient. After that, I will probably get started with C#.
Several years ago, I knew C# and .Net were not free; hence my motivation decreased. But when I knew there was .Net Core, I began to find my motivation again. Still, Java has been always on my mind since 2006, had actually read its official tutorial (text based) offline, but never wrote an actual app. So, I feel it's time to resume my learning that I suspended very long time ago and begin to write an actual app.
Recently, every time I read C# doc, my mind was on Java too. :):)
Therefore, I have to give my priority on Java first; next time when the right time comes, I will spend my time for a journey with C#.
However, it's still possible that I will change my mind later, or at least trying to learn both in different days/hours.

Thread Thread
 
joelbonetr profile image
JoelBonetR 🥇

If it's so clear then go directly to Java 😁

You know, instead of procrastinating or jumping to a different thing, start with a blank Java file in your favourite IDE and start typing

public static void main(String[] args)
Enter fullscreen mode Exit fullscreen mode

and begin adding more lines. It can be a calculator that works through the terminal and it will be good. The most important thing for you is to finish something that's little and then checking for bigger (or just different) things.

Also share your learning on Java, I want to read your steps with it! 😁

Thread Thread
 
lexiebkm profile image
Alexander B.K.

I am accustomed to getting the fundamental concepts first, like classes, objects, packages, annotations, interfaces, inheritance. I am currently on interface, specifically on default methods. I usually try the code samples given in the official textual tutorial, modify in some parts to try my own idea, using only Javac compiler (although already installed NetBeans and Eclipse).
But I need to be patient this time; so my plan is : after I "finish" with generics, I will visit Spring Boot to resume my learning on it for developing back-end (REST API) for my React app. Actually I want to proceed to J2EE, but it will take longer time. The use of annotations in Spring for declaring a controller class as well as for mapping HTTP verbs to the corresponding class methods look beautiful to me.
I find the use of decorators in Angular framework for similar purpose looks beautiful too; no wonder Nest.js (a Node.js framework) is heavily inspired by Angular on its architecture.

Thread Thread
 
joelbonetr profile image
JoelBonetR 🥇

That's nice. I get boring if I only get theory beforehand, I need to put myself hands on and increase my knowledge through this do -> read -> do cycle 😂