Tags:
Node Thumbnail

เฟซบุ๊กใช้ภาษา PHP มาตั้งแต่แรกๆ และใช้เรื่อยมาจนถึงปัจจุบันโดยสร้างเทคโนโลยีมาเสริมเพื่อรองรับการทำงานประสิทธิภาพสูงอยู่เรื่อยๆ โครงการก่อนหน้านี้เช่น HipHop VM (HHVM) ตอนนี้ก็มีพัฒนาการใหม่ถึงขั้นพัฒนาภาษาของตัวเองในชื่อว่าภาษา Hack แล้ว

ภาษา Hack เป็นภาษาที่ออกแบบมาเพื่อทำงานร่วมกับ HHVM และ PHP ได้เป็นอย่างดี ขณะเดียวกันก็มีฟีเจอร์ใหม่ๆ ที่เหมาะกับโครงการขนาดใหญ่มากขึ้น เช่น การระบุชนิดตัวแปร และระบุได้ว่าตัวแปรประเภทใดเป็น Null ได้, Generics, Collection เช่น Vector/Set/Pair เป็นชนิดตัวแปรพื้นฐาน, Lambda สร้างฟังก์ชั่น

ดาวน์โหลดได้เลยวันนี้

ที่มา - Facebook Engineering Blog, Hacklang.org

Get latest news from Blognone

Comments

By: mk
FounderAndroid
on 21 March 2014 - 12:07 #689432
mk's picture

เท่าที่อ่านดู สรุปว่ามันคือ PHP + static typing แบบไม่บังคับ และทำงานบน HHVM runtime

  • ออกแบบมาใช้กับโค้ด PHP เก่าได้
  • เป้าหมายคือช่วยลด error ของ dynamic typing (ที่ต้องเทสต์ตอน runtime) ลง กระบวนการพัฒนาจะได้เร็วขึ้น
  • ตอนนี้โค้ดของ Facebook เปลี่ยนมาเป็น Hack เกือบหมดแล้ว

ดีทุกอย่างยกเว้นชื่อ เวลาเรียกคงสับสนน่าดู

By: bow_der_kleine
WriterAndroidUbuntu
on 23 March 2014 - 16:26 #689880 Reply to:689432
bow_der_kleine's picture

เห็นด้วยว่ามันคือ PHP + static typing ครับ แต่หากจะทำอย่างนี้ น่าจะคิดภาษาใหม่ไปเลย (หมายถึงใหม่จริง ๆ ไม่ได้มีพื้นจาก PHP) เพราะ
- ลากเอาความ inconsistent ของ PHP มาด้วย
- สับสนเรื่องการใช้ library ระหว่าง PHP กับ hack
- function test(): void มันรุ่มร่าม ทำไมไม่ void test() ไปเลย
โดยตัวภาษาผมว่ามันไม่ clean เท่าไร เพราะ PHP มันไม่ clean มาแต่แรกแล้ว เอามาต่อยอดด้วย concept ที่ไม่ได้ออกแบบมาแต่ต้นอีก เลยไปกันใหญ่

แต่มันค่อนข้าง practical โดยเฉพาะคนที่มีโค้ด PHP เป็นทุนเดิม

By: itpcc
ContributoriPhoneRed HatUbuntu
on 21 March 2014 - 12:24 #689437
itpcc's picture

*0*

//จะว่าไปเวลาแฮฟข้อมุลเว็บชาวบ้านก็ใช้ php จะเปลี่ยนมาใช้ hack ก็ดีเหมือนกัน จะได้เหมาะกะงาน :P


บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P

By: hoolala
Android
on 21 March 2014 - 14:01 #689441

น่าจะ fail ตั้งแต่ชื่อแล้วล่ะ ลองนึกถึงตอน search หาข้อมูลเกี่ยวกับภาษานี้โดยใส่ keyword ว่า "hack" หรือ "hack facebook" ดูสิ

By: lew
FounderJusci's WriterMEconomicsAndroid
on 21 March 2014 - 15:33 #689495 Reply to:689441
lew's picture

ตอนผมหา go ก็หา golang กันครับ ตัว hack นี่ชื่อเว็บก็เรียก hacklang น่าจะกลายเป็น keyword มาตรฐาน


lewcpe.com, @public_lewcpe

By: hoolala
Android
on 21 March 2014 - 18:38 #689542 Reply to:689495

อ้อ ขอบคุณครับ

By: phtone
Ubuntu
on 21 March 2014 - 12:47 #689451

ผมชอบชื่อนะ คิดนอกกรอบดี

By: GooEng
ContributorWindows PhoneAndroidUbuntu
on 21 March 2014 - 18:59 #689462
GooEng's picture

เมื่อก่อนมีคนกล่าวหาว่า C# ลอก Java แต่ตอนนี้กลายเป็นแทบจะทุกภาษาลอก C# แม้แต่ hack ยังไม่เว้น เช่น [C#] int? a = null; [hack] ?int a = null; lambda expression ภาษา Java ก็ลอก C# ยอมรับกันเถอะว่า การลอกเลียนแบบคือการต่อยอดแนวคิด เพื่อต่อไปเราจะได้หัดภาษาที่มัน syntax เหมือนกันหมด ไม่เหนื่อยดี


คำตอบของข้า คือ ประกาศิต

By: bow_der_kleine
WriterAndroidUbuntu
on 23 March 2014 - 16:02 #689876 Reply to:689462
bow_der_kleine's picture

ปกติการกล่าวถึงภาษาจะไม่เรียกว่า "ลอก" ครับ แต่จะเรียกว่า "ได้รับอิทธิพล" ภาษาเขียนโปรแกรมมีธรรมชาติหลายอย่างคล้ายภาษาธรรมชาติ และตัวมันเองไม่ถือเป็น invention แต่เป็นการกำหนด กฎ กติกา และระเบียบวิธีคิด มันเลยไม่มีการลอก การลอกต้องใช้กับสิ่งที่มี invention ครับ

By: GooEng
ContributorWindows PhoneAndroidUbuntu
on 21 March 2014 - 13:39 #689464
GooEng's picture

hhvm uses a JIT not be a tracelet.


คำตอบของข้า คือ ประกาศิต

By: GooEng
ContributorWindows PhoneAndroidUbuntu
on 21 March 2014 - 13:41 #689466
GooEng's picture

มีภาษา hack ต่อไปก็ต้องมีภาษา hall


คำตอบของข้า คือ ประกาศิต

By: jaideejung007
ContributorWindows PhoneWindows
on 21 March 2014 - 15:10 #689485 Reply to:689466
jaideejung007's picture

ขรรมแปป

By: itpcc
ContributoriPhoneRed HatUbuntu
on 21 March 2014 - 15:12 #689486 Reply to:689466
itpcc's picture

ภาษามาย์มิ้นต์ จุปป้าจุ๊ป โบตัน ฯลฯ


บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P

By: tomyum
ContributorAndroidWindows
on 22 March 2014 - 04:20 #689632 Reply to:689486
tomyum's picture

...เพิ่งขำ ก๊าก

By: dajazzkitten
AndroidWindows
on 21 March 2014 - 15:14 #689488

นอกเรื่อง

ภาษาคอมพิวเตอร์ ก็เหมือนภาษาคน ภาษามีไว้ใช้สื่อสาร(เป็นหลัก) ภาษาสมัยใหม่ ก็จะง่ายกว่าภาษาสมัยเก่า

ใช้คำว่า "ลอก" มันตลก จะว่าพัฒนาก็ใช่ แต่ผมว่าไม่เชิง เพราะมันคือภาษาใหม่ ไม่ใช่ภาษาเดิม ไม่ใช่ HTML version ใหม่ๆ แต่การใช้คำว่าเป็น "ทายาท/ราก" คงฟังดูเข้าท่าดี เหมือน ภาษาเยอรมันเป็นรากของภาษาอังกฤษ
ภาษาละติน เป็นรากของ ฝรั่งเศส สเปนนิช อิตาเลี่ยน โปรตุกี๊ส

By: heart
ContributoriPhone
on 21 March 2014 - 17:07 #689522 Reply to:689488
heart's picture

ต่างกันตรงที่ ภาษาคน เกิดขึ้นมาโดยธรรมชาติ
ไม่มีใครตั้งบริษัทที่คิดค้นภาษาคนขึ้นมาเป็นพิเศษ แล้วคิดค่าเช่าในการใช้ภาษานี้พูดสื่อสารกัน

แต่ภาษาคอม มันคือการคิดค้น วิจัย พัฒนา
ดังนั้น ถ้ามีใครเริ่มจะลอกเลียนขึ้นมา มันก็เลี่ยงไม่ได้ ที่จะใช้คำว่า "ลอก"
เพราะมันคือการหยิบเอาของที่ "คนอื่น" คิดค้น ทดสอบ พัฒนา มาเป็นเวลานาน มาใช้กับของตัวเองในทันที

By: Aorjor on 21 March 2014 - 19:28 #689556 Reply to:689522

ผมเห็นต่างนะครับ ภาษาคนก็มีหลายแบบครับวัจนภาษา ภาษาที่ใช้เป็นลายลักษณ์อักษรหรืออวัจนภาษา ท่าทางต่างๆ
จะบอกว่าเกิดจากธรรมชาติก็ถูกครับ แต่ไม่ใช่ทั้งหมดหรอกนะครับผมว่า คนร้องให้เพราะได้รับความเจ็บปวดหรือสะเทือนใจอันนี้อาจจะได้จากธรรมชาติ แต่ถ้าภาษาเขียนก็มีการดัดแปลงกันมาเรื่อยๆ เนื่องจากถูกบีบบังคับเรื่องชีวิตความเป็นอยู่ในแต่ละสมัยมันก็มีการพัฒนาของมันครับ เช่นทองคำ "ทอง" มาจากภาษาหนึ่งน่าจะเขมร(จำไม่ได้) ส่วน "คำ" มาจากภาษาลาว ไทยเราเอามาเรียกว่า"ทองคำ" ทุกคำล้วนมีความหมายถึงแร่ชนิดเดียวกัน ถามว่าไทยไทยลอกมาหรือเปล่าครับ? ผมว่ามันก็พูดยากนะ

By: heart
ContributoriPhone
on 22 March 2014 - 02:06 #689618 Reply to:689556
heart's picture

ธรรมชาติของคำเปรียบเทียบ มันเปรียบเทียบได้มุมเดียวอยู่แล้วครับ
ถ้ามุมอื่นๆ ก็ต้องใช้กรณีอื่นเปรียบเทียบกันต่อไป

ประเด็นคือ ภาษาคอมพิวเตอร์ มันเป็นการวิจัย และพัฒนา ได้มาอย่างยากลำบาก

ผมพยายามบอกว่า คำว่าลอก เวลาใช้กับเทคโนโลยี มันดูรุนแรงกว่า
กับคำว่าลอก ในการลอกด้านภาษาของมนุษย์ ความรู้สึกมันไม่เหมือนกัน

By: neizod
ContributorTraineeIn Love
on 21 March 2014 - 22:41 #689580 Reply to:689522
neizod's picture

free beer or free speech?

เอาจริงๆ ผมว่าภาษาคนมันก็มีค่าใช้จ่ายนะ คือจ่ายด้วยเวลาที่ผู้เรียนเอาตัวไปคลุกคลีในวัฒนธรรมของภาษานั้นๆ เพื่อเรียนรู้ไง

By: Zeball
iPhoneWindows PhoneAndroidUbuntu
on 21 March 2014 - 15:15 #689489

ที่ญี่ปุ่นมีการพัฒนา .hack มานานแล้วซึ่งมี 2 โครงการคือ Project .hack และ .hack Conglomerate.
สามารถดูผลงานโครงการได้

.hack wiki
.Hack ปี 2002

อ่านแล้วอย่าโกรธกันเลยนะครับ :P

By: meawwat
ContributoriPhoneAndroidSymbian
on 21 March 2014 - 16:19 #689506 Reply to:689489
meawwat's picture

แหม่

By: kajokman
ContributorAndroidIn Love
on 21 March 2014 - 16:22 #689510 Reply to:689489
kajokman's picture

คนละชื่อเลย วิกิที่ให้มาก็บอกวิธีออกเสียงอยู่ :P

By: Zeball
iPhoneWindows PhoneAndroidUbuntu
on 21 March 2014 - 18:04 #689530 Reply to:689510

ถูกต้องนะครับ แต่ถ้าเป็นภาษาเขียนไม่สังเกตุ . ก็จะกลายเป็น hack ไง

อิอิ :D

By: neizod
ContributorTraineeIn Love
on 21 March 2014 - 18:36 #689538
neizod's picture

สแกนคร่าวๆ ที่น่าสนใจคือ

  • มี vector type ไว้สำหรับทำ index array อย่างที่ควรจะเป็นในภาษาอื่นๆ ซักที
  • ที่หัว __construct สามารถกำหนดตัวแปรที่ bind เข้ากับ obj ได้เลย (จำได้ว่าเห็นครั้งแรกใน coffeescirpt)
  • lambda ลูกศรรุงรังไปหน่อย เพราะ php ดันใช้ -> กับเรื่องอื่นไปก่อนแล้ว
  • มี type สำหรับสร้าง xml โดยเฉพาะ ไม่ต้องทำเป็น string แล้วค่อยแทรกตัวแปร หรือสลับไปเขียน xml แล้วค่อย echo ตัวแปรแล้ว (คล้ายภาษา template เข้าไปทุกที)