جاوا طرفداران خود را دارد، اما منتقدان خود را نیز دارد. در اینجا برخی از دلایلی وجود دارد که توسعه دهندگان بیشتر و بیشتر از این زبان اجتناب می کنند.
جاوا یک زبان برنامه نویسی شی گرا و پلتفرم نرم افزاری پرکاربرد است. این دستگاه روی میلیاردها دستگاه از جمله رایانه های نوت بوک، دستگاه های تلفن همراه، کنسول های بازی و بسیاری دیگر اجرا می شود.
داشتن چنین قابلیت هایی بهایی دارد. یادگیری جاوا با یک نحو پیچیده طولانی می تواند سخت باشد. به صورت ایستا تایپ می شود که می تواند کمتر راحت باشد. و در حالی که این پلتفرم مستقل است، ظهور پلتفرم رایانش ابری باعث میشود استقلال کمتر بردی داشته باشد.
اینها تنها تعدادی از دلایلی است که ممکن است جاوا از بین برود.
1. جاوا کمتر محبوب می شود
اول از همه، به نظر می رسد که محبوبیت جاوا به آرامی کاهش می یابد. برای سالها، این یکی از بهترین زبانهای برنامهنویسی برای یادگیری بود، اما اکنون دیگر مورد توجه نیست. این بدان معناست که با گذشت زمان، توسعه دهندگان برنامه های جدید کمتر و کمتری را در جاوا خواهند نوشت.
این روند حاکی از آن است که جاوا در نهایت از بین خواهد رفت. کسبوکارها در سراسر جهان به استخدام برنامهنویسان جاوا برای حفظ پایگاههای کد قدیمی ادامه خواهند داد، اما این برای همیشه دوام نخواهد داشت.
با این حال، اگر می خواهید شغل خود را به جای حفظ برنامه های موجود، بر روی ساختن چیزهای جدید متمرکز کنید، جاوا ممکن است بهترین انتخاب برای شما نباشد.
زبان برنامه نویسی
می 2022
پایتون
جاوا اسکریپت
C++
سی شارپ
ویژوال بیسیک
جاوا
زبان اسمبلی
SQL
PHP
10
2. جاوا ساده نیست
یادگیری جاوا ممکن است آسان باشد، اما ساده نیست. یادگیری زبان آسان است زیرا کد جاوا برای نوشتن، سازماندهی و کامپایل ساده است. اما ساده نیست زیرا کدهای نوشته شده در جاوا پرمخاطب تر و نوشتن خسته کننده تر هستند.
شما همچنین باید آن را کامپایل کنید، که جاوا را بسیار راحت تر از زبان هایی مانند پایتون می کند. بنابراین، اگر شما یک مبتدی هستید که برای اولین بار کدنویسی را یاد میگیرید، جاوا زبان خوبی برای شروع نیست.
اگر حرفهای هستید که میخواهید کدهای ساده و ظریف تولید کنید و آن را به سرعت اجرا کنید، جاوا نیز گزینه ایدهآلی نیست.
3. گترها و ستترها
دریافت کننده ها و تنظیم کننده ها تقریباً بخش اجباری استفاده از یک زبان هستند و بسیاری از چارچوب ها استفاده از آنها را تشویق می کنند. با این حال، گیرندهها و تنظیمکنندههای جاوا میتوانند به طور غیرضروری پرمخاطب باشند.
مدیریت کدهای تزئین شده با دریافت کننده ها و تنظیم کننده های جاوا جهنمی و پیچیده است. فقدان یک راه حل معنادار برای مشکل گیرنده ها و تنظیم کننده ها فقط نوک کوه یخ است.
public class Vehicle {
private String color;
// Getter
public String getColor() {
return color;
}
// Setter
public void setColor(String c) {
this.color = c;
}
}
4. بدون یخ نحوی
شما در حال فعالیت در یک مجموعه هستید. شما اولین مورد را می خواهید. چه کار می کنی؟ البته به جای استفاده از عملگر مشترک [] متد را فراخوانی می کنید. همه به این دلیل که نمی توانید اپراتورها را بیش از حد بارگذاری کنید.
تقریباً برای هر عملیاتی، شما باید از یک نام متد لفظی استفاده کنید، حتی اگر یک اپراتور تک کاراکتری این کار را انجام دهد.
جاوا از مفهوم پشتیبانی می کند. به عنوان مثال، زبان به شما امکان می دهد رشته ها را با عملگر + به هم پیوند دهید. این فقط به شما، برنامه نویس، اجازه نمی دهد که همین کار را انجام دهید.
5. اعلام استثناها یک روش ممکن است
جاوا از شما می خواهد که استثناهایی را که یک متد ممکن است ایجاد کند را اعلام کنید. به نظر مفید است، اینطور نیست؟ با استفاده از یک روش معین، می دانید که چه انتظاری دارید.
مشکل این است که کد یک موجود زنده است و این اتفاق می افتد که روشی که شما استفاده می کنید شروع به پرتاب استثناهای بیشتری می کند. آن وقت چه خواهد شد؟ خب، کامپایل کد شما متوقف شد.
شما باید وضعیت را کنترل کنید یا یک استثنا به لیست پرتاب ها اضافه کنید. بیایید فرض کنیم API مورد استفاده شما تغییر نمی کند. چیزی به نام RuntimeException در جاوا وجود دارد. اگر روش شما می تواند این استثنا یا یکی از فرزندان آن را پرتاب کند، باید آن را اعلام کنید.
استثناهای جاوا می تواند مشکلات زیادی در نگهداری کد ایجاد کند.
// Java program that demonstrates the use of throw
class ThrowExcep
{
static void fun()
{
try
{
throw new NullPointerException("demo");
}
catch (NullPointerException e)
{
System.out.println("Caught inside fun().");
throw e; // rethrowing the exception
}
}
public static void main(String args[])
{
try
{
fun();
}
catch (NullPointerException e)
{
System.out.println("Caught in main.");
}
}
}
6. IDE های پیچیده
برنامه نویسان جاوا اغلب از یک IDE مانند Eclipse یا IntelliJ استفاده می کنند. این IDE ها قدرتمند هستند، اما تعامل با آنها پیچیده است، به خصوص برای یک توسعه دهنده مبتدی یا متوسط. شما باید تلاش زیادی برای یادگیری IDE خود در داخل و خارج انجام دهید تا برای شما مفیدتر و کمتر دردسرساز باشد.
7. استقلال پلت فرم در سال 2022 اهمیت کمتری دارد
این واقعیت که جاوا بسیار مستقل از پلتفرم است، امروزه نسبت به 10 یا 20 سال پیش اهمیت کمتری دارد.
دلیل این امر این است که ما در یک دنیای نرم افزاری زندگی می کنیم. امروزه، ماشینهای مجازی، کانتینرها و سرویسهای ابری، اجرای یک برنامه را در هر کجا که میخواهید آسان میکنند، بدون اینکه نگران محیط اصلی باشید.
به عبارت دیگر، لازم نیست کد خود را تغییر دهید تا برنامه شما در جایی که نیاز دارید کار کند. در عوض می توانید محیط میزبانی را تغییر دهید.
این بدان معنا نیست که قابلیت حمل برنامه دیگر اهمیتی ندارد. به اندازه گذشته حیاتی نیست، و این باعث می شود جاوا از نظر توسعه کمی اهمیت کمتری داشته باشد.
8. تایپ استاتیک
جاوا در طول زمان کامپایل بررسی نوع انجام می دهد. این بدان معنی است که شما باید نوع هر متغیر را در زمان کامپایل اعلام کنید. در مورد زبانهایی مانند C و C++ نیز همینطور است، اما زبانهای دیگر، مانند Scala و Haskell، نوعی استنتاج نوع را ارائه میدهند.
با تایپ ایستا، متغیرها معمولاً مجاز به تغییر نوع نیستند. این امر سینتکس جاوا را به خصوص هنگام نوشتن کد برای یک پروژه بزرگ کمی پیچیده می کند.
بسیاری از برنامه نویسان برنامه نویسی پویا را ترجیح می دهند که در آن بررسی نوع در زمان اجرا انجام می شود. این بدان معناست که نوع یک متغیر می تواند در طول عمر آن تغییر کند.
آموزش زبان های برنامه نویسی جدید
اینطور نیست که جاوا برای هیچ چیز خوب نیست، اما نحو آن ضخیم است و برای خواندن کد مفید نیست. مدیریت وابستگی جاوا اجازه سوء استفاده را می دهد و منجر به شناسایی اشکالات سخت می شود.
فناوری همچنان در حال تغییر است و به عنوان یک توسعه دهنده، همیشه به روز بودن با زبان های برنامه نویسی نوظهور مفید است. آنچه امروز در مد است ممکن است به زودی اخبار دیروز باشد.