۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

دنیای در حال تغییر جاوا

گزارش وضعیت جاوا Vaadin's گنجینه ای از دانش در مورد نحوه استفاده توسعه دهندگان از جاوا امروز است. بیایید حفاری کنیم.

گزارش وضعیت جاوا Vaadin’s گنجینه ای از دانش در مورد نحوه استفاده توسعه دهندگان از جاوا امروز است. بیایید حفاری کنیم.

Vaadin اخیراً تحقیقات جدیدی را در مورد وضعیت جاوا در شرکت منتشر کرده است. در ترکیب با منابع دیگر، این نظرسنجی نگاه خوبی به تکامل جاوا ارائه می دهد. دیدگاه کلی حاکی از سرزندگی و حتی تجدید علاقه به جاوا است، زیرا همچنان به ارائه پایه ای محکم برای ساخت برنامه های کاربردی در طیف وسیعی از اندازه ها و کاربردها ادامه می دهد.

من به همراه چند نفر دیگر به وضعیت جاوا ۲۰۲۳ در گزارش سازمانی کاوش کردم . این مقاله آنچه را که فکر می‌کنم مهم‌ترین پیشرفت‌ها در جاوای سازمانی امروزی است، خلاصه می‌کند.

همگام با جاوا

جاوا طی دهه گذشته شاهد پیشرفت های طولانی مدتی بوده است. ما در حال حاضر در آستانه تغییرات مهمتری از طریق بازساز زبان جاوا در پروژه والهالا و به‌روزرسانی‌های همزمان جاوا در Project Loom هستیم. این تغییرات پیش رو، همراه با ملاحظات امنیتی، به روز ماندن با نسخه های جاوا را بسیار مهم می کند.

تحقیقات Vaadin نشان می‌دهد که توسعه‌دهندگانی که از جاوا استفاده می‌کنند تا کنون با به‌روزرسانی‌های نسخه همراه بوده‌اند. بیست و شش درصد از پاسخ دهندگان گزارش می دهند که از نسخه ۱۷ یا جدیدتر استفاده می کنند. ۲۱ درصد در حال ارتقا هستند. و ۳۷٪ در حال برنامه ریزی برای ارتقاء هستند.

این نتایج با تحقیق از New Relic که نشان می‌دهد جاوا ۱۱ در حال تبدیل شدن به استاندارد فعلی LTS (پشتیبانی طولانی مدت) است و به تدریج جاوا ۸ را جایگزین می کند. جاوا ۱۷ جدیدترین نسخه LTS است که جایگزین جاوا ۱۱ تحت سرعت انتشار دو ساله می شود و به زودی به ارتقای پایه جاوا تبدیل می شود. نسخه بعدی LTS Java 21 خواهد بود که در حال حاضر برای سپتامبر ۲۰۲۳.

تهدید امنیت سایبری

نتایج نظرسنجی نشان می‌دهد که امنیت یک نگرانی اصلی برای توسعه‌دهندگان جاوا است و دلیل خوبی هم دارد. کشف آسیب‌پذیری Log4j، آسیب‌پذیری‌های کد در برنامه‌های جاوا و جاهای دیگر را مورد توجه قرار داد. امنیت سایبری یک طوفان آهسته است که به نظر می رسد با گذشت زمان تنها قدرت خود را جمع می کند.

گزارش Vaadin نشان می‌دهد که ۷۸% از توسعه‌دهندگان جاوا “تضمین امنیت برنامه” را یک نگرانی اصلی می‌دانند. ۲۴٪ آن را به عنوان یک چالش مهم توصیف می کنند. و ۵۴٪ می گویند که تا حدودی یک چالش است.

جاوا به خودی خود یک پلتفرم بسیار امن است. اما مانند هر زبان دیگری، برای آسیب‌پذیری‌های شخص ثالث باز است. نوشتن و استقرار برنامه های کاربردی ایمن جاوا مستلزم حفظ شیوه های امنیتی خوب در کل چرخه عمر برنامه و پشته فناوری است. حتی دولت فدرال، از طریق CISA، ایمن سازی نرم افزار منبع باز و ردیابی آسیب‌پذیری‌ها به‌طور جدی و ترغیب به پذیرش معماری‌های بدون اعتماد a>.

چرا اکثر شرکت ها از تحول دیجیتالی خوششان می آید؟

از آنجایی که جاوا یک پلتفرم مستحکم و در حال تکامل است، توسعه دهندگان جاوا در موقعیت مناسبی قرار دارند تا با دنیای بسیار واقعی و در حال تغییر تهدیدات پیش روی برنامه های کاربردی وب مواجه شوند. ما فقط باید از نگرانی های امنیتی آگاه باشیم و امنیت سایبری را در فعالیت های توسعه روزانه خود ادغام کنیم.

تجربه برنامه‌نویس

طبق تحقیقات Vaadin، ۷۶٪ از پاسخ دهندگان استخدام و حفظ توسعه دهندگان را یک چالش مهم یا تا حدودی یک چالش می دانند. البته این یک مشکل در کل صنعت است، زیرا فرسودگی و نارضایتی توسعه دهندگان باعث ایجاد مشکل عمده در جذب و حفظ توسعه دهندگان نرم افزار خوب می شود.

شاید بهترین راه برای فکر کردن در مورد حفظ برنامه‌نویس، با توجه به تجربه توسعه‌دهنده (یا DX) باشد. مانند سایر کدنویسان، برنامه نویسان جاوا می خواهند در محیطی کار کنند که از تلاش های ما پشتیبانی می کند و به ما امکان می دهد از مهارت ها و خلاقیت خود استفاده کنیم. یک محیط حمایتی شامل ابزارها و فرآیندهای توسعه و فرهنگ کلی سازمان است.

یکی از راه‌های بهبود تجربه توسعه‌دهنده، از طریق یک زیرساخت توسعه قوی است که مراحل توسعه استرس‌زا مانند استقرار را ساده‌تر و سازگار می‌سازد. یک تعامل بین devops و تجربه توسعه دهنده وجود دارد. بهبود ابزارها و فرآیندهایی که توسعه‌دهندگان استفاده می‌کنند، نگهداری از آنها و اطمینان از صحت تطبیقی ​​را برای ما آسان‌تر می‌کند.

استقرارهای Cloud-native در مقابل خود میزبانی شده

ارقام استقرار در تحقیقات Vaadin بزرگ است. زیرساخت‌های ابری و پلت‌فرم‌های بدون سرور – محیط‌های بومی ابری – به‌عنوان یک تحول اساسی برای برنامه‌های جاوا دیده می‌شوند. در حال حاضر، ۵۵ درصد از برنامه های جاوا در ابرهای عمومی مستقر شده اند. میزبانی داخلی و خصوصی هنوز ۷۰ درصد از استقرار برنامه ها را تشکیل می دهند. Kubernetes و بدون سرور ۵۶٪ از استقرارها را تشکیل می دهند که بین ابر عمومی، on-prem و PaaS پخش می شوند.

از میان ارائه‌دهندگان بدون سرور، خدمات وب آمازون (AWS) پیشتاز فضا است و ۱۷ درصد از پاسخ‌دهندگان گفتند که برنامه‌های جاوا خود را با استفاده از AWS Lambda اجرا می‌کنند. بر اساس پاسخ های نظرسنجی، Microsoft Azure و Google Cloud Platform بدون سرور، هر دو ۴٪ از کل استقرارها را تشکیل می دهند.

بعد از سرورهای on-prem و ماشین‌های مجازی، Kubernetes روی پرم رایج‌ترین سبک استقرار است که توسط ۲۹٪ از پاسخ‌دهندگان استفاده می‌شود.

این اعداد به یک اکوسیستم جاوا اشاره می‌کنند که به حرکت خود به سمت فناوری بومی ابری ادامه داده است، اما همچنان دارای بخش بزرگی از عملکرد است که روی سرورهای خود میزبان اجرا می‌شود. بسیاری از فروشگاه‌های جاوا برای پذیرش پلتفرم‌های ابری احساس فوریت می‌کنند. اما برخی از توسعه‌دهندگان همچنان پلتفرم‌ها و چارچوب‌های خود میزبان را به قفل شدن در مدل کسب‌وکار محاسبه برای اجاره ارائه‌دهنده ابر ترجیح می‌دهند.

Red Hat OpenShift پشتیبانی Nvidia، Arm، AI را اضافه می کند

انواع برنامه های جاوا

جای تعجب نیست که بیشترین سهم از برنامه های جاوا را برنامه های کاربردی تحت وب تشکیل می دهند، به طوری که برنامه های دسکتاپ تنها ۱۸ درصد از کل محصولات در حال توسعه را در زمان بررسی تشکیل می دهند. در مورد ترکیب برنامه های جدید و موجود که از جاوا استفاده می کنند، گروه متنوعی است. تحقیقات Vaadin بیشتر بین پشته های فناوری فعلی و تغییرات برنامه ریزی شده در پشته تمایز قائل می شود.

تمرکز قوی مداوم بر برنامه‌های جاوای تمام پشته بسیار جالب است. به طور کامل ۷۰٪ از پاسخ دهندگان نشان دادند که برنامه های جاوا فول استک جدید برای پروژه های آینده برنامه ریزی شده است.

در پشت برنامه های فول استک، توسعه Back-end قرار دارد. به گفته پاسخ دهندگان، ۶۹٪ از برنامه های سرمایه گذاری جدید API های Back-end را تشکیل می دهند.

پس از توسعه تمام پشته و بک‌اند، تلاش‌های توسعه پاسخ‌دهندگان بین مدرن‌سازی برنامه‌های کاربردی موجود (۵۷%) پخش شد. توسعه برنامه های کاربردی کامل پشته ناهمگن (جاوا با جاوا اسکریپت یا TypeScript) (48%). انتقال برنامه های کاربردی موجود به ابر (۳۶%). و ساخت پایانه های جلویی جدید برای پایانه های پشتی جاوا موجود (۲۹%).

این نظرسنجی همچنین نشان می‌دهد که در حال حاضر توسعه‌دهندگان جاوا از چه چارچوب‌هایی طرفدار دارند. Angular (37٪) و React (32٪) پیشتاز هستند و Vue (16٪) در رتبه های بعدی قرار دارند. این برخلاف صنعت عمومی است که React محبوب ترین فریم ورک است. سایر چارچوب‌ها مانند Svelte به اندازه کافی قوی نبودند که در نظرسنجی ظاهر شوند.

با توجه به محبوبیت و کاربرد آن، جای تعجب نیست که Spring به شدت توسط توسعه دهندگان جاوا استفاده می شود. از پاسخ دهندگان، ۷۹ درصد گزارش دادند که از Spring Boot و ۷۶ درصد از چارچوب کلی Spring استفاده می کردند. پیش‌بینی در میان توسعه‌دهندگان این است که هر دو به استفاده از آنها ادامه دهند.

مدرن سازی و قابلیت نگهداری

پنجاه و هفت درصد از پاسخ دهندگان به نظرسنجی Vaadin نشان دادند که نوسازی دغدغه اصلی برای سرمایه گذاری برنامه ریزی شده است. بالاترین رتبه بندی دلیل ارائه شده برای مدرنیزاسیون قابلیت نگهداری بود.

قابلیت نگهداری یک دغدغه همگانی و همیشگی برای توسعه دهندگان همه راه راه ها و پشته ها است. با حجم عظیمی از کدهایی که ممکن است آن را “میراث” بدانیم – یعنی هر چیزی که قبلاً ساخته شده است – در جاوا، این حس قوی وجود دارد که ما باید سیستم های موجود خود را ارتقا دهیم تا بتوان روی آنها کار کرد و به آن وارد شد. آینده. این یک تکانه سالم است. یافتن اراده و پول برای بازسازی و تقویت آنچه در حال حاضر وجود دارد، کلید هر پروژه بلندمدتی است.

وقتی finops در نهایت هزینه بیشتری برای شما دارد

بعد از قابلیت نگهداری، امنیت می آید که قبلاً در مورد آن صحبت کرده ایم. با این حال، در این مورد، امنیت به عنوان یکی دیگر از دلایل مدرن‌سازی در نظر گرفته می‌شود، به طوری که ۲۰ درصد از پاسخ‌دهندگان، امنیت را به عنوان دلیل اول، ۱۶ درصد در رتبه دوم و ۲۱ درصد در رتبه سوم قرار می‌دهند. امنیت بار دیگر یک تمرکز منطقی و سالم در میان توسعه دهندگان است.

جاوا و رابط کاربری

در میان تمام چالش‌هایی که توسعه‌دهندگان جاوا شناسایی کرده‌اند، به نظر می‌رسد ایجاد یک “UX بصری و ساده” بزرگترین است. این یک چالش مهم برای ۳۰٪ و تا حدودی یک چالش برای ۵۱٪ از توسعه دهندگان است.

UI بخش دشواری از هر برنامه ای است. من این احساس را دارم که توسعه‌دهندگان جاوا در ساخت APIهای Back-end و میان‌افزار قوی هستند و در آرزوی راهی برای استفاده از فناوری آشنای خود برای ساختن در سراسر پشته هستند – فقط به تاکید شدید بر برنامه‌های جاوای تمام پشته توجه کنید. یکی از پاسخ‌دهندگان در نظرسنجی اظهار داشت: «ما می‌خواهیم از جاوا هم برای Backend و هم برای Frontend استفاده کنیم.» شاید با WASM روزی امکان پذیر شود.

در حال حاضر، توسعه‌دهندگان جاوا یا با ساختن در چارچوب جاوا اسکریپت مانند React، با استفاده از فناوری که امکان کدنویسی در جاوا و خروجی در جاوا اسکریپت را فراهم می‌کند (مانند JavaServer Faces یا Google Web Toolkit) یا با استفاده از چارچوبی مواجه هستند که سعی می کند هر دو جاوا و جاوا اسکریپت را تحت یک چتر واحد مانند Hilla یا jHipster در بر گیرد. (من در مورد هر دو اینجا در InfoWorld نوشته ام.)

ادغام جاوا با ابزارهای دیگر

در کل صنعت، توسعه‌دهندگان جاوا به سمت شیوه‌های توسعه بهتری مانند CI/CD و همچنین ادغام‌های شخص ثالث حرکت کرده‌اند. گزارش Vaadin راه‌حل‌های ورود به سیستم، قابلیت مشاهده و ورود به سیستم (SSO) را به عنوان محبوب‌ترین ابزارهای مورد استفاده شناسایی می‌کند. Kubernetes، ابزارهای کسب‌وکار مانند برنامه‌ریزی منابع سازمانی (ERP) و مدیریت ارتباط با مشتری (CRM)، راه‌حل‌های devops و احراز هویت چند عاملی (MFA) بقیه ابزارهای شخص ثالث را در اکوسیستم جاوا تکمیل می‌کنند. p>

نتیجه گیری

مثل نظرسنجی وضعیت جاوا اسکریپت برای جاوا اسکریپت، وضعیت جاوا در Vaadin Enterprise Report یک پرتره گسترده از جاوا، هم در حالتی که هست و هم در جایی که در حال حرکت است، ارائه می دهد. به طور کلی، به نظر می‌رسد جاوا بر موجی از ثبات همراه با پویایی در حال تکامل سوار است. این دو با هم نشانگر یک فناوری حیاتی است که برای آینده آماده است.