JavaRush /จาวาบล็อก /Random-TH /คอฟฟี่เบรค #68. ความคิดเห็นที่ตรงไปตรงมาเกี่ยวกับ Java แล...

คอฟฟี่เบรค #68. ความคิดเห็นที่ตรงไปตรงมาเกี่ยวกับ Java และระบบนิเวศของมัน เครื่องมือ Java ใหม่สามตัวที่ต้องพิจารณาในปี 2021

เผยแพร่ในกลุ่ม

ความคิดเห็นที่ตรงไปตรงมาเกี่ยวกับ Java และระบบนิเวศของมัน

Source: Dev.to โอเค ฉันยอมรับว่าภาษาหลักของฉันคือ C# แต่นี่เป็นความคิดเห็นที่เป็นกลางของฉันเกี่ยวกับ Java และระบบนิเวศโดยรอบ ฉันใช้คำสั่ง bash ใน Java ค่อนข้างบ่อยโดยเห็นข้อบกพร่องทั้งหมด ตัวอย่างเช่น Java ไม่มีคุณสมบัติ โดยธรรมชาติแล้วไม่มีเหตุการณ์ ไม่มีโครงสร้าง ไม่มีโอเปอเรเตอร์โอเวอร์โหลด และจนกระทั่ง Java 10 ไม่มีการอนุมาน ดังนั้นจึงไม่มี 'var' ทุกอย่างมีอยู่ใน C#! นอกจากนี้ฉันใช้ bash สำหรับ Java เนื่องจากไม่มี LINQ, var และ enums ถึงกระนั้นฉันก็เขียน Java ค่อนข้างมากโดยเฉพาะเมื่อฉันสร้างแอปพลิเคชันสำหรับ Android แต่เพื่อสิ่งอื่นด้วย โปรเจ็กต์แรกของฉันก็อยู่ใน Java ด้วย! ดังนั้นในเย็นวันศุกร์ เนื่องด้วยความเร่งด่วน ฉันจึงต้องเขียนภาษาจาวาเป็นเวลาหลายชั่วโมงติดต่อกัน และเดาว่าฉันค้นพบอะไร? ลำธาร! คอฟฟี่เบรค #68.  ความคิดเห็นที่ตรงไปตรงมาเกี่ยวกับ Java และระบบนิเวศของมัน  เครื่องมือ Java ใหม่สามตัวที่ต้องพิจารณาในปี 2021 - 1เห็นได้ชัดว่า Java 8 เปิดตัวเธรด! และฉันก็ไม่รู้เรื่องนี้เลย! สำหรับผู้ที่ไม่ทราบว่า Streams เป็นการปรับใช้ Java ของ LINQ ฉันยังค้นพบด้วยว่า Java 10 มีการอนุมานประเภท ดังนั้นตอนนี้ Java จึงมีฟังก์ชัน var! ฉันไม่อยากจะเชื่อเลยว่าความรู้ของฉันล้าสมัยแค่ไหน แต่จริงๆ แล้ว มันมีเหตุผลของมันอยู่ สองสิ่งนี้สร้างความแตกต่างอย่างมากในความคิดของฉัน! คุณรู้ไหมว่า Java จะตรวจสอบข้อยกเว้นอยู่เสมอ แต่ C# จะไม่ตรวจสอบ? ฉันยอมรับว่าฉันพลาดฟีเจอร์นี้ใน C# จริงๆ! ใช่ ไม่มีโครงสร้าง ไม่มีคุณสมบัติ ฯลฯ แต่ให้ตายเถอะ มันดูสง่ามาก! ฉันคิดว่า Java โดยการออกแบบบังคับให้นักพัฒนาเขียนแอปพลิเคชันที่มีประสิทธิภาพมากขึ้น ในขณะที่ในโลก .NET สิ่งนี้ส่วนใหญ่ขึ้นอยู่กับดุลยพินิจของผู้เขียนโค้ด นักพัฒนาบางคนชอบข้อจำกัดเหล่านี้ ในขณะที่บางคนชอบอิสระ แม้ว่าทั้งสองภาษาจะค่อนข้างปลอดภัย แต่ Java ก็มีความได้เปรียบเล็กน้อยอย่างเห็นได้ชัด แล้วทำไมบริษัทขนาดใหญ่ถึงชอบ Java? ฉันคิดว่าฉันรู้คำตอบแล้ว! สิ่งที่ทำให้ฉันหงุดหงิดที่สุดคือ... ในตัวอย่างโค้ดส่วนใหญ่ที่คุณเห็นบนอินเทอร์เน็ต คุณสมบัติขั้นสูงเหล่านี้ไม่ได้ถูกนำมาใช้เสมอไป... ฉันคิดว่าหากนักพัฒนา Java ใหม่เห็นว่า 'var' เขียนไปทั่วฐานโค้ด เขาจะบ้าไปแล้ว! แล้วสตรีมล่ะ? กระแสคืออะไร? นักพัฒนา Java ชอบ For loop! ในความเป็นจริง แม้แต่ foreach loop ก็ค่อนข้างหายากในโลก Java (และอาจมีเหตุผลสำหรับสิ่งนี้: For loop ได้รับการปรับให้เหมาะสมกว่ามาก) แต่สิ่งเหล่านี้ไม่ใช่คุณสมบัติที่ไม่ดี! ฉันจะไปไกลกว่านี้และบอกว่าคุณสมบัติเหล่านี้น่าทึ่งมาก! มันทำให้ฉันเจ็บปวดมากเมื่อฉันเขียนแอพ Android และสังเกตว่าแทบไม่มีการใช้ enum ของ Android API เลย! และนี่ก็ยุติธรรมเพราะ Android เขียนขึ้นเมื่อหลายปีก่อน สิ่งที่ทำให้ฉันหงุดหงิดที่สุดคือฉันต้องใช้ค่าคงที่ทุกครั้งที่ต้องใช้ฟังก์ชัน Activity for Results ใน Android เช่นนี้int PICK_IMAGE_FROM_GALLERY = 3000 พี่นี่มันบ้าไปแล้ว! แต่คนทั่วโลกกลับยอมรับมัน และแม้กระทั่งฉัน Java ยังขาดการใช้งานเหตุการณ์ดั้งเดิม! ถ้ามีแต่อีเว้นท์และ delegates อย่าง C#... (เฮ้ ผู้สร้างภาษา Java ถ้าพวกคุณอ่านอยู่ก็ต้องเพิ่มอีเว้นท์ด้วย! และถ้าคุณมีอยู่แล้วหรืออยู่ในผลงานก็บอกผมด้วย ). ตอนนี้ฉันจะบอกคุณว่าอะไรคือข้อบกพร่องที่ใหญ่ที่สุดในระบบนิเวศ Java เอกสาร!!! เอกสารที่ไม่เป็นระเบียบและไม่เป็นประโยชน์บนเว็บไซต์ Oracle ดูโง่เขลาและล้าสมัย ในระดับปี 2550 มันไม่ได้มีตัวอย่างโค้ดเสมอไป หากคุณเริ่มมองหาฟีเจอร์หรือเมธอด API ที่ค่อนข้างแปลก คุณจะพบคำจำกัดความที่น่าเบื่อ การประกาศ อาร์กิวเมนต์ แพ็คเกจที่เป็นของสิ่งนั้น ก็แค่นั้นแหละ ฉันคิดว่านี่เป็นเรื่องไร้สาระ คุณไม่คิดว่ามันไร้สาระเหรอ? ไม่มีข้อมูลโค้ดใช่ไหม นักพัฒนาของเราจึงต้องพึ่งพาฟอรัมอย่าง StackOverflow หรือเว็บไซต์การเขียนโปรแกรมอื่นๆ เช่น TutorialsPoint เป็นอย่างมาก... บางครั้งพวกเขาก็มีประโยชน์มากกับตัวอย่างโค้ดดีๆ ที่แสดงฟีเจอร์นี้ แต่ในบางครั้งมันก็ไม่ได้มีประโยชน์มากนัก ฉันแนะนำให้เปรียบเทียบเอกสารของ Microsoft ใน C# กับเอกสารของ Oracle ใน Java... สวรรค์และโลก! ไม่เชื่อฉันเหรอ? ไปและตรวจสอบ: OracleและMicrosoft. เอกสารประกอบบนเว็บไซต์ Microsoft ดูสวยงาม! พวกเขายังมีโหมดมืดอีกด้วย! นักพัฒนาของเราคลั่งไคล้โหมดมืด แล้วเอกสารของ Oracle ล่ะ? อย่างที่ฉันบอกไปมันยังคงอยู่ในปี 2550 บางทีอาจจะไม่มีโหมดมืดในตอนนั้น? เลยอยากจะบอกว่า Java น่าทึ่งมาก! แต่ภาษานี้ประสบปัญหาอย่างมากจากเอกสารที่ล้าสมัย เอกสารเหล่านี้ส่วนใหญ่เป็นเอกสารเก่าและคู่มือเก่าที่ไม่ได้เน้นคุณลักษณะใหม่ที่จำเป็นมากนัก เช่น เธรด, vars และ enums ทุกวันนี้ผู้คนบอกว่า Java เริ่มล้าสมัยและจะถูกแทนที่โดย Kotlin แต่ฉันไม่เห็นด้วย เพราะถึงแม้จะเป็นเรื่องจริงเขาก็จะไม่เข้ามาแทนที่เธอเป็นเวลานาน การดำเนินการนี้จะใช้เวลาหลายปี คุณจำได้ไหมว่าสกาล่าพยายามแทนที่มันด้วย? แล้วมันได้อะไรมาล่ะ? Java ยังคงควบคุมระบบนิเวศ JVM ทั้งหมด แม้ว่าฉันยอมรับว่า Scala นั้นแตกต่างจาก Java มาก โดยมีหลักการทำงานเป็นหลัก ในที่สุด... อีกสิ่งหนึ่งที่ทำให้ฉันมีอารมณ์มากกว่าสิ่งอื่นใดในโลก Java นี่คือการรับ JDK เหตุใดการดาวน์โหลด JDK จึงเป็นเรื่องยาก สิ่งที่ฉันหมายถึงคือถ้าฉันต้องการ JDK การค้นหาโดย Google แบบง่ายๆ จะพาฉันไปที่เว็บไซต์ Oracle ฉันจะไปที่นั่นและค้นหาเวอร์ชันของ JDK ที่ฉันต้องการ จนถึงตอนนี้ทุกอย่างค่อนข้างง่าย แต่เพื่อที่จะดาวน์โหลดฉันต้องลงทะเบียน เหตุใดฉันจึงต้องสร้างบัญชีบน Oracle แล้วจัดการกับอีเมลทุกสัปดาห์แทนที่จะดาวน์โหลด JDK เท่านั้น โปรดทราบว่า Java เป็นโอเพ่นซอร์สตั้งแต่วันแรก! ต่างจาก C# ซึ่งเพิ่งกลายเป็นโอเพ่นซอร์สในปี 2558 ดังนั้นฉันจึงหงุดหงิดและไปที่เว็บไซต์ที่สองในผลการค้นหาของ Google มันชี้ให้ฉันไปที่ไซต์ OpenJDK ฉันพบ JDK ที่นั่นแล้วคลิก "ดาวน์โหลด" แต่ (เซอร์ไพรส์มาก!) พวกเขามีลิงก์ไปยังการใช้งาน JDK จากไซต์อื่น ๆ ! ในบรรดาไซต์ต่างๆ มี Oracle ที่ถูกสาปนี้ แต่ก็มีลิงก์ไปยังไซต์ Red Hat ด้วย ใช่ Red Hat ยอดเยี่ยมมาก เป็นหนึ่งในผู้บุกเบิกบริษัทโอเพ่นซอร์สในโลก โอเค ฉันจะไปที่เว็บไซต์ของพวกเขา! ฉันจะดาวน์โหลดจากที่นั่น! ฉันคลิกที่ลิงค์นี้ ค้นหาเวอร์ชัน JDK ที่ฉันต้องการ แล้วเดาอะไรล่ะ? ฉันต้องลงทะเบียนที่นั่นด้วย... (หยุดดราม่า) เศร้าจังเลย... ให้ตายเถอะ! เกิดอะไรขึ้นกับคนเหล่านี้? ในที่สุดฉันก็ยอมและติดตั้ง Chocolatey (มันเหมือนกับ apt-get แต่สำหรับ Windows ฉันคิดว่ามันเป็นตัวจัดการแพ็คเกจแรกที่เผยแพร่และใช้กันอย่างแพร่หลายสำหรับ Windows) หลังจากทั้งหมดนี้ ฉันจำเป็นต้องเขียนคำสั่งง่ายๆ ใน PowerShell เช่น: choco install jdk-1.8 และฉันก็ทำได้! (หากคุณเป็นนักพัฒนา C# คุณจะรู้ว่าการรับ .Net SDK เพียง 2-3 คลิกนั้นง่ายเพียงใด โดยไม่ต้องลงทะเบียนหรืออะไรทำนองนั้น) เพื่อสรุปการพูดจาโผงผางของฉัน: Java เป็นภาษาโปรแกรมที่ยอดเยี่ยม มันสวยงาม เชื่อถือได้ และมี (ในความคิดของฉัน) IDE ที่ดีที่สุดในโลก - IntelliJ IDEA ที่รู้จักกันดีจาก JetBrains นอกจากนี้ Java ยังมีชุมชนที่เป็นประโยชน์และระบบนิเวศขนาดใหญ่และหลากหลาย และฉันกำลังพูดแบบนี้ - นักพัฒนา C#... แต่เราจำเป็นต้องอัปเดตเอกสารประกอบ ตัวอย่างโค้ด เอพีไอ เราต้องทำให้การรับ JDK ง่ายขึ้น โดยรวมแล้ว Java กำลังดำเนินไปในทิศทางที่ถูกต้อง ความนิยมของมันอาจลดลงเล็กน้อยเมื่อเร็ว ๆ นี้ แต่นั่นจะไม่ทำให้ Java หายไป เป็นเวลาหลายปีแล้วที่ภาษานี้อยู่ในอันดับต้น ๆ ของรายการภาษาที่ดีที่สุดในโลก! ฉันใช้ Java ตลอดเวลาและจะใช้ต่อไปในอนาคต

เครื่องมือ Java ใหม่สามตัวที่ต้องพิจารณาในปี 2021

ที่มา: OpenSource แม้ว่า Python, Go และ Node.js จะได้รับความนิยม ซึ่งมีการใช้งานอย่างแข็งขันในช่วงไม่กี่ปีที่ผ่านมาเพื่อดำเนินโครงการที่เกี่ยวข้องกับปัญญาประดิษฐ์ การเรียนรู้ของเครื่อง และ Kubernetes แต่เทคโนโลยี Java ยังคงมีบทบาทสำคัญในการพัฒนาแอปพลิเคชันระดับองค์กร จากข้อมูลของ Developer Economics พบว่ามีนักพัฒนา Java ระดับองค์กรจำนวน 8 ล้านรายทั่วโลกในไตรมาสที่สามของปี 2020 คอฟฟี่เบรค #68.  ความคิดเห็นที่ตรงไปตรงมาเกี่ยวกับ Java และระบบนิเวศของมัน  เครื่องมือ Java ใหม่สามตัวที่ต้องพิจารณาในปี 2021 - 2ภาษาการเขียนโปรแกรม Java มีมานานกว่า 25 ปีแล้วและมีการอัปเดตอยู่ตลอดเวลา เครื่องมือและเฟรมเวิร์กใหม่ๆ กำลังเกิดขึ้นซึ่งสามารถเสริมศักยภาพให้กับแอปพลิเคชันและอาชีพของคุณได้ แพลตฟอร์ม Java ส่วนใหญ่ถูกสร้างขึ้นเพื่อใช้กระบวนการที่ใช้เวลานานพร้อมกับพฤติกรรมแบบไดนามิก ซึ่งออกแบบมาเพื่อทำงานบนเซิร์ฟเวอร์หรือเครื่องเสมือน สิ่งนี้เปลี่ยนไปในปี 2014 ด้วยการถือกำเนิดของคอนเทนเนอร์ Kubernetes ขณะนี้ ความท้าทายที่ใหญ่ที่สุดเมื่อรัน Java บน Kubernetes คือ: การเพิ่มประสิทธิภาพแอปพลิเคชันโดยการลดขนาดหน่วยความจำ การเร่งความเร็วในการเริ่มต้นและเวลาตอบสนอง และลดขนาดไฟล์

เฟรมเวิร์กและเครื่องมือ Java ใหม่สามรายการ

นักพัฒนา Java มองหาวิธีที่ง่ายที่สุดในการรวมเครื่องมือยอดนิยมและโปรเจ็กต์โอเพ่นซอร์สเข้ากับแอปพลิเคชัน Java ของตนอยู่เสมอ เครื่องมือใหม่ประสิทธิภาพสูงช่วยเพิ่มประสิทธิผลในการพัฒนาได้อย่างมาก และส่งเสริมให้บริษัทและนักพัฒนาแต่ละรายใช้ Java Stack มากขึ้น วันนี้เราจะพูดถึงเฟรมเวิร์กและเครื่องมือ Java ใหม่สามรายการ:

ควาร์ก

Quarkus ได้รับการออกแบบมาเพื่อการพัฒนาไมโครเซอร์วิสบนคลาวด์และแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ โดยมีเวลาบูตที่รวดเร็ว ขนาดชุดหน่วยความจำขนาดเล็ก (RSS) และความหนาแน่นของหน่วยความจำสูงในแพลตฟอร์มการจัดการคอนเทนเนอร์ เช่น Kubernetes ตามรายงานประจำปีที่เก้าของ JRebel การใช้งาน Quarkus ในหมู่นักพัฒนา Java เพิ่มขึ้น 6% (น้อยกว่า 1% ในปีก่อนหน้า) Micronaut และ Vert.x เพิ่มขึ้นเป็น 4% และ 2% ตามลำดับ (ปีที่แล้ว - ประมาณ 1%)

คราส เจคิวบ์

ด้วย Eclipse JKube นักพัฒนา Java จะสร้างคอนเทนเนอร์อิมเมจตามแอปพลิเคชัน Java บนคลาวด์โดยใช้กลยุทธ์การสร้าง Docker, Jib หรือ Source-To-Image เครื่องมือนี้ยังสร้างรายการ Kubernetes และ OpenShift ณ เวลาคอมไพล์ และปรับปรุงประสบการณ์การใช้งานเครื่องมือแก้ไขจุดบกพร่อง การตรวจสอบ และการบันทึก

ไมโครโปรไฟล์

MicroProfile แก้ปัญหาที่เกี่ยวข้องกับการปรับสถาปัตยกรรมองค์กรของไมโครเซอร์วิส Java ให้เหมาะสม โดยไม่ต้องแนะนำเฟรมเวิร์กใหม่หรือปรับโครงสร้างแอปพลิเคชันทั้งหมดใหม่ นอกจากนี้ ข้อมูลจำเพาะของ MicroProfile (เช่น ความสมบูรณ์, Open Tracing, Open API, Fault Tolerance, เมตริก, Config) ยังคงพัฒนาอย่างต่อเนื่องตามการใช้งาน Jakarta EE

บทสรุป

ยากที่จะบอกว่าเฟรมเวิร์กหรือเครื่องมือ Java ใดดีที่สุดสำหรับนักพัฒนา Java ระดับองค์กร ตราบใดที่ยังมีโอกาสที่จะปรับปรุง Java Stack และเร่งการเติบโตของธุรกิจองค์กร เราก็สามารถคาดหวังได้ว่าเฟรมเวิร์ก เครื่องมือ และแพลตฟอร์มใหม่จะเกิดขึ้น ลองดูว่าพวกเขาจะสามารถปรับปรุงแอปพลิเคชัน Java ของคุณในปี 2021 ได้หรือไม่
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION