คำถามติดแท็ก scala

Scala เป็นภาษาโปรแกรมวัตถุประสงค์ทั่วไปโดยเฉพาะอย่างยิ่งการกำหนดเป้าหมายไปที่ Java Virtual Machine ออกแบบมาเพื่อแสดงรูปแบบการเขียนโปรแกรมทั่วไปในรูปแบบที่กระชับสง่างามและปลอดภัยต่อการใช้งาน

5
Groovy กำลังจะหายไป? [ปิด]
ฉันแน่ใจว่าคำถามนี้ถูกถามหลายครั้ง อย่างไรก็ตามฉันต้องการถามอีกครั้งด้วยความตั้งใจว่าอนาคตของภาษาเหล่านี้คืออะไร ฉันถูกแนะนำให้รู้จักกับGroovyเป็นครั้งแรกและชอบมันมาก ผมรู้สึกว่าไวยากรณ์ถูกง่ายและมันก็เป็นมากใกล้ Java และฉันก็สามารถที่จะเรียนรู้ได้อย่างรวดเร็วGrails จากนั้นก็มีScalaและกรอบการทำงานเว็บLift ฉันยังคงเรียนรู้สกาล่าและฉันพบว่าไวยากรณ์ยากมากในบางครั้ง อย่างไรก็ตามฉันยังคงสงสัยว่าอนาคตของ Groovy คืออะไร เมื่อผู้เขียน Groovy บอกว่าเขาจะไม่สร้าง groovyถ้าเขารู้เรื่องสกาล่ามันทำให้ฉันสงสัยว่ามีอนาคตหรือไม่ แน่นอนว่า Groovy มีมานานแล้วและ Grails ถูกใช้งานในปัจจุบันโดย บริษัท ขนาดใหญ่หลายแห่ง ถ้ามีใครไปดู Grails vs Lift วันนี้ Grails จะเป็นผู้ชนะอย่างชัดเจน บริษัท อื่น ๆ กำลังใช้งานอยู่ แต่ด้วยทุกสิ่งที่ฉันได้กล่าวไปแล้วฉันสนใจที่จะรู้ว่าควรลงทุนใน Groovy หรือไม่? Groovy กำลังจะหายไปและ Scala เป็นตัวเลือกที่ดีกว่าหรือไม่? หากซีอีโอของ BMW บอกว่าเขาขับ Mercedes แล้วใครจะสงสัยว่าทำไมเราทุกคนไม่ควรขับ Mercedes ด้วยใช่มั้ย (ฉันเข้าใจว่าคำถามนี้กว้างมากและอาจถูกปิดฉันหวังว่าจะทำให้เป็น Wiki แบบเปิดสำหรับผู้อื่นได้)
30 java  scala  groovy  grails 

8
ใช้ระบบพิมพ์ที่“ แข็งแกร่ง” ในโลกแห่งความเป็นจริงพูดสำหรับเว็บแอปขนาดใหญ่หรือไม่?
ฉันรู้ว่านี่เป็นคำถามที่กว้างขวางคลุมเครือและเป็นไปได้ทางปรัชญา ในขอบเขตที่คำหลักที่สำคัญที่สุดในคำถาม - "ความเชื่อ" ระบบการพิมพ์ - ตัวเองเป็นป่วยกำหนด ดังนั้นให้ฉันพยายามอธิบายสิ่งที่ฉันหมายถึง บริบทโดยรวมของคำถาม เราได้สร้างเว็บแอปขนาดใหญ่ขึ้นใน Ruby on Rails และโดยทั่วไปเรามีความสุขกับกองซ้อนของเรา เมื่อเราต้องการเราสามารถจัดส่งสิ่งต่าง ๆ ได้อย่างรวดเร็วจริง ๆ - สิ่งที่ใช้งานได้ 90% ของคดี "ธุรกิจ" โดยไม่ต้องกังวลเรื่องขอบคดีมากถึง 10% ในทางกลับกันด้วยความช่วยเหลือในการใช้โค้ดรีวิวและทดสอบครอบคลุมเราจะช้าและพิจารณาและตรวจสอบให้แน่ใจว่าเราครอบคลุมฐานทั้งหมด - อีกครั้งเฉพาะในสถานการณ์ที่สมควรได้รับการตรวจสอบข้อเท็จจริงและความปลอดภัยอย่างใกล้ชิด อย่างไรก็ตามเมื่อทีมเติบโตขึ้นฉันเริ่มรู้สึกไม่สบายใจกับการขาด "ตาข่ายนิรภัย" ที่ถูกอบเข้าไปในกองของเรา เราเพิ่งเริ่มทำการพัฒนา Android พื้นเมืองบน Java และฉันก็นึกถึงความปลอดภัยที่จัดเตรียมโดยภาษาที่รวบรวม / คงที่ / พิมพ์ดีดอย่างยิ่ง ตัวแปรที่สะกดผิดประเภทข้อมูลที่ไม่ถูกต้องการเรียกใช้ฟังก์ชันที่ไม่ถูกต้องและโฮสต์ของข้อผิดพลาดเล็กน้อยที่ IDE ของคุณติดอยู่เอง ทั้งหมดเป็นเพราะ IDE สามารถเชื่อมต่อกับคอมไพเลอร์และตรวจสอบบางแง่มุมของโปรแกรม "ความถูกต้อง" ต้องการเปลี่ยนลายเซ็นฟังก์ชั่นหรือไม่? ง่าย. คอมไพเลอร์ …

9
เหตุใด Scala ไม่ถูกนำไปใช้กับ C หรือ C ++
ไม่มีใครรู้ว่าทำไม Scala ถูกนำไปใช้ใน Java และ. NET แทนที่จะเป็น C หรือ C ++? ภาษาส่วนใหญ่ใช้กับ Cor C ++ [เช่น Erlang, Python, PHP, Ruby, Perl] ข้อดีของ Scala ที่นำมาใช้ใน Java และ. NET นอกเหนือจากการให้สิทธิ์การเข้าถึงไลบรารี Java และ. NET คืออะไร? UPDATE สกาล่าจะไม่ได้รับประโยชน์มากขึ้นหากนำไปใช้ใน C เพราะสามารถปรับได้ดีกว่าการพึ่งพา JVM
28 java  c++  .net  c  scala 

6
ทำไมความพยายามเหล่านี้ถึงทำให้ Scala ล้มเหลวด้วย Xtend และ Kotlin [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ดังนั้นตอนนี้ Eclipse ได้เสนอ Xtend และ JetBrains กำลังเสนอ Kotlin ซึ่งทั้งสองอย่างนี้ดูเหมือนจะถูก Scala ลงมา คำถามของฉันคือทำไม ผมเคยเล่นกับกาลาบิตและก็ไม่ได้ว่าอย่างหนัก นี่เป็นเพียงปฏิกิริยาตอบสนองต่อความยากลำบากในการก้าวกระโดดจากความจำเป็นต่อการทำงานหรือมีอะไรอีกบ้างที่ทำงานที่นี่? แก้ไข: ขอโทษ อ่านคำถามอีกครั้งเมื่อฉันโพสต์มันฉันสามารถดูว่ามันฟังดูคล้ายการหมุนรอบบ้าง วิธีที่ฉันใช้คำถามเป็นเพียงวิธีที่ดีที่สุดในการถามคำถาม ฉันได้เห็นการโพสต์บล็อกถึงเอฟเฟกต์ "Scala ยากเกินไป / Scala ซับซ้อนเกินไป" และ "Kotlin เป็นความพยายามที่จะทำ Scala แต่ง่ายกว่า" ฉันจะออกจากคำพูดเดิม แต่ฉันสุจริตไม่พยายามหมุนรอบ

5
อินสแตนซ์อาจเท่ากับอินสแตนซ์อื่นที่เป็นประเภทเฉพาะเจาะจงมากกว่าหรือไม่
ฉันได้อ่านบทความนี้: วิธีการเขียนวิธีที่เท่าเทียมกันในชวา โดยพื้นฐานแล้วจะมีวิธีแก้ปัญหาสำหรับวิธีเท่ากับ () ที่รองรับการสืบทอด: Point2D twoD = new Point2D(10, 20); Point3D threeD = new Point3D(10, 20, 50); twoD.equals(threeD); // true threeD.equals(twoD); // true แต่มันเป็นความคิดที่ดี? อินสแตนซ์ทั้งสองนี้ดูเหมือนจะเท่ากัน แต่อาจมีรหัสแฮชที่แตกต่างกันสองแบบ ไม่ผิดหรอกเหรอ? ฉันเชื่อว่าสิ่งนี้จะสำเร็จได้ดีกว่าโดยการคัดเลือกตัวถูกดำเนินการแทน
25 java  c#  scala  comparison 

2
ทำไมสกาล่าถึงกลับมา แต่ไม่หยุดพักและทำต่อไป
สกาล่าไม่มีbreakหรือcontinueดังนั้นพฤติกรรมวนรอบบางอย่างจึงใช้ความคิดอีกเล็กน้อย การสิ้นสุดลูปก่อนกำหนดต้องใช้การเรียกซ้ำแบบหางข้อยกเว้นหรือscala.util.control.Breaks(ซึ่งใช้ข้อยกเว้น) เหตุผลสำหรับเรื่องนี้ก็คือว่าgotoพวกเขาเป็นโครงสร้างการไหลที่ไม่ชัดเจนการไหลและสามารถทำได้ในวิธีที่ดีกว่าและน่าแปลกใจน้อยกว่า returnแต่ดูเหมือนขัดแย้งกันเหล่านั้นสามารถนำมาใช้สำหรับ เหตุใดสกาล่าจึงละเว้นbreakและcontinueไม่ทำเช่นนั้นreturn?

8
สกาล่าพร้อมหรือยังสำหรับช่วงเวลาไพร์ม? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ตอนนี้ฉันได้ทำสิ่งเล็ก ๆ น้อย ๆ กับ Scala (ซึ่งฉันชอบ "Hello world" และแอปพลิเคชันที่ประดิษฐ์!) ฉันสงสัยว่า .. ส่วนหนึ่งเกี่ยวกับวุฒิภาวะของเครื่องมือเพื่อสนับสนุนการพัฒนาและส่วนหนึ่งเกี่ยวกับการบังคับใช้ทั่วไป ชุดเครื่องมือพร้อมหรือยัง? Scala เหมาะสมสำหรับการใช้กับแอปพลิเคชันระดับองค์กร / ธุรกิจหรือไม่ "คุณ" จะใช้มันในโครงการที่ไม่สำคัญหรือไม่? ข้อกังวลของฉัน (ไม่มีมูล) อาจเป็น: IDE และชุดเครื่องมือมีความสมบูรณ์เท่ากับสิ่งที่เราต้องพัฒนาแอปพลิเคชัน. net และ java (eclipse สำหรับ Scala ดูเหมือน จำกัด เมื่อเทียบกับ eclipse สำหรับ java) ชุดเครื่องมือ build / CI / การทดสอบสามารถจัดการกับ …
22 scala 

5
การเขียนโปรแกรมเชิงฟังก์ชันนั้นเกี่ยวข้องกับคณิตศาสตร์อย่างมากหรือไม่?
การเขียนโปรแกรมเชิงฟังก์ชั่นเกี่ยวข้องกับคณิตศาสตร์หรือไม่ มันต้องมีฐานที่แข็งแกร่งของคณิตศาสตร์เพื่อเรียนรู้และเข้าใจการเขียนโปรแกรมที่ใช้งานได้สำหรับโปรแกรมเมอร์ที่มีพื้นฐานที่จำเป็นหรือไม่?

3
IDE ที่ดีที่สุดสำหรับ Scala คืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันพยายามเขียนโปรแกรม Scala ใน Netbeans และ Eclipse แต่ไม่ใช่สิ่งที่ฉันกำลังมองหา ในคำแนะนำ Netbeans สำหรับชื่อวิธีการ ฯลฯ ไม่ทำงาน ใน Eclipse ฉันไม่สามารถไปที่แหล่งเรียนได้โดยกด F3 (เช่นรายการสกาล่า) มีการสนับสนุนใน IntelliJ IDEA หรือไม่ Scala ที่รองรับ IDE อื่นมีหรือไม่
20 ide  scala 

2
ไม่มีอะไรเป็นประเภทย่อยของทุกประเภทอื่น ๆ ใน Scala
ฉันกำลังเรียนหลักสูตร coursera ของ Martin Odersky เกี่ยวกับการเขียนโปรแกรมใช้งานได้กับ scala และตอนนี้ฉันได้เรียนรู้สองสิ่งที่เข้าด้วยกันไม่สมเหตุสมผล: สกาล่าไม่สนับสนุนการสืบทอดหลายแบบ Nothing เป็นประเภทย่อยของทุกประเภทอื่น ๆ ข้อความทั้งสองนี้ไม่สามารถอยู่ด้วยกันได้ดังนั้นสิ่งนี้จะทำอย่างไรกันแน่? และอะไรคือความหมายของ "ประเภทย่อยของทุก ๆ ประเภท" แก้ไข 1 ในกาลา API , Nothingถูกกำหนดให้เป็นabstract final class Nothing extends Any... ดังนั้นวิธีที่จะสามารถขยายชั้นเรียนอื่น ๆ ?

10
นักพัฒนา Java คิดอย่างไรกับ Scala [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันได้ตั้งข้อสังเกตว่าการสนับสนุน IDE นั้นใกล้เคียงกับที่ดี แต่ภาษานั้นรองรับสำนวนการเขียนโปรแกรมที่ใช้งานได้ดีกว่าหมดจด

1
การส่งผ่านฟังก์ชัน Scala ไปยังวิธีการ Java 8
โค้ด Scala ต่อไปนี้ใช้งานได้และสามารถส่งผ่านไปยังเมธอด Java ที่ต้องการฟังก์ชัน มีวิธีที่สะอาดกว่านี้หรือไม่? นี่คือการผ่านครั้งแรกของฉัน: val plusOne = new java.util.function.Function[Int,Int] { override def apply(t:Int):Int = t + 1 override def andThen[V](after:function.Function[_ >: Int, _ <: V]): function.Function[Int, V] = ??? override def compose[V](before:function.Function[_ >: V, _ <: Int]): function.Function[V, Int] = ??? } นี่คือรอบที่สองของฉัน - มันใช้ wrapper ทั่วไปสำหรับส่วนต่อประสานฟังก์ชั่น …

3
ภาษาทำงานเร็วที่สุด
ฉันเพิ่งได้รับการขุดเจาะเข้าไปในการเขียนโปรแกรมการทำงานโดยเฉพาะอย่างยิ่ง Haskell และ F #, ก่อนหน้านี้มากขึ้น หลังจาก googling ไปรอบ ๆ ฉันไม่สามารถหาการเปรียบเทียบเกณฑ์มาตรฐานของภาษาที่ใช้งานได้ดีกว่า (Scala, F # ฯลฯ ) ฉันรู้ว่ามันไม่ยุติธรรมสำหรับบางภาษา (Scala มาถึงใจ) เนื่องจากพวกเขาเป็นลูกผสม แต่ฉันแค่อยากจะรู้ว่ามีประสิทธิภาพที่ดีกว่าซึ่งในการดำเนินงานและโดยรวม

4
การเขียนโปรแกรมเชิงฟังก์ชันเพิ่มความซับซ้อนในรหัสหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ตลอดปีที่ผ่านมาฉันเขียนโค้ดScala (มาจากพื้นหลัง Java) ฉันชอบวิธีที่คุณสามารถสร้างรหัสที่ง่ายและสะอาดยิ่งขึ้นด้วย vals คลาส case, ฟังก์ชัน map / filter / lambda, implicits และการอนุมานประเภท ฉันใช้มันเป็นส่วนใหญ่สำหรับแอปพลิเคชันAkka ปีนี้ฉันอยู่ในโปรเจค Scala กับทีมใหม่ที่ชอบการเขียนโปรแกรมที่ใช้งานได้จริง พวกเขาใช้Scalazอย่างหนักและรหัสจะถูกเติมเต็มทุกที่ด้วยผู้สมัครขอบเขตบริบทผู้อ่าน / นักเขียน / รัฐ monad แม้วิธีการหลักคือ "พัน" ใน I / O monad เหตุผลของพวกเขาคือสิ่งนี้ทำให้คอมไพเลอร์ "ทำงานเพื่อเรา" ในการยืนยันว่ารหัสถูกต้องและแต่ละฟังก์ชั่นเป็นอิสระจากผลข้างเคียง ถึงกระนั้นจากมุมมองของฉันทุกไวยากรณ์นี้จริงๆได้รับในทางของตรรกะทางธุรกิจ ตัวอย่างเช่นประเภทของ "MyBusinessObject" นั้นใช้ได้เช่นเดียวกับประเภทเช่น "รายการ [MyBusinessObject]", "ตัวเลือก [MyBusinessObject]" …

4
ทำไม Scala ใช้โอเปอเรเตอร์ '_' สำหรับการนำเข้าแพ็คเกจแทน '*' เหมือนกับใน Java
ในความคิดของฉันสิ่งหนึ่งที่ยิ่งใหญ่ที่สุดเกี่ยวกับ Scala คือความสามารถในการทำงานร่วมกันกับ Java และไวยากรณ์ที่คล้ายคลึงกัน สิ่งหนึ่งที่ฉันพบว่าแปลกคือการใช้ตัว_ดำเนินการสำหรับการนำเข้าแพคเกจ wilcard แทนตัว*ดำเนินการที่ใช้ใน Java มีเหตุผลทางเทคนิคสำหรับการใช้_แทน*หรือไม่? ถ้าไม่เช่นนั้นทำไมการเปลี่ยนแปลงนี้ถึงเกิดขึ้น?
17 java  scala 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.