Development

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

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

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

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

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

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

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

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

เห็นด้วยว่ามันคือ PHP + static typing ครับ แต่หากจะทำอย่างนี้ น่าจะคิดภาษาใหม่ไปเลย (หมายถึงใหม่จริง ๆ ไม่ได้มีพื้นจาก PHP) เพราะ

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

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

itpcc Fri, 21/03/2014 - 12:24

*0*

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

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

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

#นอกเรื่อง

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

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

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

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

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

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

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

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

free beer or free speech?

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

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

.hack wiki
.Hack ปี 2002

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

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

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