delphi 5 โปรแกรมที่วิศวะ ควรรู้

Started by skytec, April 07, 2013, 06:53:58 PM

Previous topic - Next topic

vittaya_m

ผมเองก็เพิ่งจับ c++ builder 6 เพราะรุ่นพี่ทำโปรเจคไว้ เลยต้องต่อยอด คล้ายกันมากเลยกับ delphi  component ก็ใช้ร่วมกันได้เลย อย่างเช่น comport ที่เขียนด้วย delphi


apisit.phum

Quote from: vittaya_m on July 24, 2013, 05:51:59 PM
ผมเองก็เพิ่งจับ c++ builder 6 เพราะรุ่นพี่ทำโปรเจคไว้ เลยต้องต่อยอด คล้ายกันมากเลยกับ delphi  component ก็ใช้ร่วมกันได้เลย อย่างเช่น comport ที่เขียนด้วย delphi

จุดเด่นของ Delphi อีกอย่างหนึ่งคือมันสามารถนำ Component ของ Tool อื่นๆมาใช้ได้
ไม่ว่าจะเป็น ActiveX, ocx ของ VB6
รวมทั้งยังสามารถเขียนภาษาอื่นๆร่วมกับ pascal ได้ด้วยครับ เช่น Python


skytec

ใครเคยใช้ component VLC อ่าน streaming ของ Multicast บ้างครับ
"จินตนาการสำคัญกว่าความรู้ ความรู้มีข้อจำกัด จิตนาการไร้ขอบเขต " --อัลเบิร์ต ไอสไตน์

s4m3l0

Delphi(pascal) ตามจริงมันตายไปตั้งแต่ตอนที่ OS ของ Apple เลิกใช้แล้วน่ะครับ(Apple ดังเดิมพวก library เขียนโดย Pascal)  แล้ว Apple ก็เปลี่ยนมาใช้ Objective-C แทน
ตามที่เห็นในเมืองไทยส่วนมาก(ภาครัฐ,รัฐวิสาหกิจ) ถ้าเป็นคนข้างใน... จะใช้โปรแกรมที่เขียนด้วย Delphi ส่วนใหญ่...
จะเห็นว่าโปรแกรมจะเขียนด้วย Delphi 7(โปรแกรมนี้ก็เกือบ 10 ปีล่ะ) โดยส่วนมากและอีกอย่างโปรแกรมนี้มี License น่ะครับ...
อ่อมันมีวิธีเช็คว่าคน compile ใช้ version อะไรน่ะครับ ผมไม่ได้มั่วเลขเวอร์ชั่นน่ะ
จะทำการ Reverse engineer โปรแกรมที่ compile มาก็ง่ายด้วยคับ
ปล.ขอโทษน่ะคับทีพูดอะไรตรงๆ นะครับ ผมก็เคยเรียน Delphi ในมหาลัยน่ะ ผมว่าควรจะเรียน C/C++ มากกว่าน่ะ
ปล2.reverse ทีนี่พวกข้อมูล พาสเเวิดนี่โชว์กันจะๆ เลย  :-X
GNU/Linux User.
Underground computer group.
The GNU people aren't evil. but i'm evil. :P

zilog

Quote from: s4m3l0 on September 26, 2013, 04:43:29 PM
Delphi(pascal) ตามจริงมันตายไปตั้งแต่ตอนที่ OS ของ Apple เลิกใช้แล้วน่ะครับ(Apple ดังเดิมพวก library เขียนโดย Pascal)  แล้ว Apple ก็เปลี่ยนมาใช้ Objective-C แทน
ตามที่เห็นในเมืองไทยส่วนมาก(ภาครัฐ,รัฐวิสาหกิจ) ถ้าเป็นคนข้างใน... จะใช้โปรแกรมที่เขียนด้วย Delphi ส่วนใหญ่...
จะเห็นว่าโปรแกรมจะเขียนด้วย Delphi 7(โปรแกรมนี้ก็เกือบ 10 ปีล่ะ) โดยส่วนมากและอีกอย่างโปรแกรมนี้มี License น่ะครับ...
อ่อมันมีวิธีเช็คว่าคน compile ใช้ version อะไรน่ะครับ ผมไม่ได้มั่วเลขเวอร์ชั่นน่ะ
จะทำการ Reverse engineer โปรแกรมที่ compile มาก็ง่ายด้วยคับ
ปล.ขอโทษน่ะคับทีพูดอะไรตรงๆ นะครับ ผมก็เคยเรียน Delphi ในมหาลัยน่ะ ผมว่าควรจะเรียน C/C++ มากกว่าน่ะ
ปล2.reverse ทีนี่พวกข้อมูล พาสเเวิดนี่โชว์กันจะๆ เลย  :-X

Delphi ยังได้รับการพัฒนาอยู่นะครับ ไม่ได้ตายไป ปัจจุบันก็มาถึง Delphi XE5 แล้ว
ดู Feature ได้ http://www.embarcadero.com/products/delphi
หากจะเทียบกับ Objective-C ก็ลองดูข้อมูลที่นี่ครับ http://vschart.com/compare/delphi-programming-language/vs/objective-c

ปัจจุบันแม้ในต่างประเทศก็ยังนิยมด้วย Delphi 7 เพราะความเล็กกระทัดและสะดวก
และเป็นเครื่องมือพัฒนาที่เป็นมาตราฐานไปแล้วสำหรับ Win32 แต่หลังจา Delphi 7 แล้วทาง
Borland พยา่ยามพัฒนาเครื่องมือสำหรับ Dot Net ของ Microsoft แต่ก็ก้าวไปได้ช้ากว่าทาง Microsoft เสมอ
จนเสียความเป็นผู้นำในตลาดด้านนี้ไป และสุดท้ายก็ถูก Embarcadero ซื้อไปดำเนินกิจการต่อ
และกลับมาเป็นผู้นำร่วมในด้านนี้อีกครั้ง ดูข้อมูลได้จาก http://en.wikipedia.org/wiki/Embarcadero_Delphi

หากกังวลเรื่อง License ก็พอมี Lazarus ที่เป็น Delphi compatible  ที่ http://www.lazarus.freepascal.org/
ตอนนี้ก็เก่้งมากแล้วครับ

ภาษาสำหรับ Computer ต่อไปคงไม่ใช่ C/C++ ซะทีเดียวนะครับ
โดย C/C++ คงน่าจะ่มีใครพัฒนาใน Computer กับงานใหญ่ๆกันต่อไปแล้ว (อาจเรียนเพื่อพื้นฐานไปยัง ภาษา Computer ตัวอื่นๆมากกว่า หรือใช้กับพวก embedded controller มากกว่าที่จะใช้พัฒนากับ เครื่อง PC/Computer พกพา ) หรือหากมีคงเป็นโปรแกรมเล็กๆมากกว่า เช่นพวก Core ของ OS , Driver หรือโปรแกรมทดสอบงานเล็กๆมากกว่า
สาเหตุเพราะภาษาเหล่านี้ มีข้อระวังในการเขียนมากมาย ซึ่งต้องพึ่งการจัดการด้วยตัวผู้เขียนโปรแกรมมาก ทำให้พัฒนาโปรแกรมใหญ่ๆลำบาก และใช้แรงงานมาก
ส่วนภาษา Computer ยุคหลังๆมานี่ ตัวเด่นๆอย่างเช่น Java,C#,Python เหล่านี้ ได้ถูกพัฒนาให้การพัฒนาโปรแกรมใหญ่ๆทำงานสะดวกมากกว่า จึงได้เห็นภาษาเหล่านี้มากขึ้นทุกทีในทุกวันนี้ แต่ก็มีข้อรายละเอียดในบางประเด็นนะครับกับภาษาบางตัว(เช่นใช้ได้กับบางเจ้าเท่านั้น) ลองดูข้อมูลการใช้งานแต่ละภาษาได้ที่นี่ http://en.wikipedia.org/wiki/Comparison_of_programming_languages
และแน่นอนว่าภาษายุคหลังๆมักปรับปรุงหรือแก้ข้อเสียจากของเดิมไปบ้าง

เครื่องมือที่ใช้กันใน Reverse engineer มีมากมายครับ
ตัวแก้ไขเรื่องนี้ก็มีมากเช่นเดียวกันครับ เช่นการใช้ Polymorphic code ก็เป็นตัวอย่างหนึ่ง
ขึ้นอยู่กับว่าจะทำไปใช้ประโยชน์ใด แต่โดยปกติก็ไม่มีการใส่หรือทำสิ่งเหล่านี้โดยไม่จำเป็นนะครับ
ยกเว้นอาจใช้เพื่อการปกป้องโปรแกรมหรือข้อมูลครับ

skytec

ขอบคุณทุกความเห็น ผมคิดว่าอยู่ที่ความเหมาะสมของงาน โดยส่วนตัวผมยังใช้ delphi ในการพัฒนา ลองเขียน Run บน 64 bit ยังไม่เจอปัญหา และประกอบกับมี component ให้ download มาใช้งานฟรีๆ เย่อะมากแทบจะเรียกว่าไม่ได้เขียนเองเลยทีเดียว ครับ
"จินตนาการสำคัญกว่าความรู้ ความรู้มีข้อจำกัด จิตนาการไร้ขอบเขต " --อัลเบิร์ต ไอสไตน์

s4m3l0

Quote from: zilog on September 27, 2013, 10:14:33 AM
Quote from: s4m3l0 on September 26, 2013, 04:43:29 PM
Delphi(pascal) ตามจริงมันตายไปตั้งแต่ตอนที่ OS ของ Apple เลิกใช้แล้วน่ะครับ(Apple ดังเดิมพวก library เขียนโดย Pascal)  แล้ว Apple ก็เปลี่ยนมาใช้ Objective-C แทน
ตามที่เห็นในเมืองไทยส่วนมาก(ภาครัฐ,รัฐวิสาหกิจ) ถ้าเป็นคนข้างใน... จะใช้โปรแกรมที่เขียนด้วย Delphi ส่วนใหญ่...
จะเห็นว่าโปรแกรมจะเขียนด้วย Delphi 7(โปรแกรมนี้ก็เกือบ 10 ปีล่ะ) โดยส่วนมากและอีกอย่างโปรแกรมนี้มี License น่ะครับ...
อ่อมันมีวิธีเช็คว่าคน compile ใช้ version อะไรน่ะครับ ผมไม่ได้มั่วเลขเวอร์ชั่นน่ะ
จะทำการ Reverse engineer โปรแกรมที่ compile มาก็ง่ายด้วยคับ
ปล.ขอโทษน่ะคับทีพูดอะไรตรงๆ นะครับ ผมก็เคยเรียน Delphi ในมหาลัยน่ะ ผมว่าควรจะเรียน C/C++ มากกว่าน่ะ
ปล2.reverse ทีนี่พวกข้อมูล พาสเเวิดนี่โชว์กันจะๆ เลย  :-X

Delphi ยังได้รับการพัฒนาอยู่นะครับ ไม่ได้ตายไป ปัจจุบันก็มาถึง Delphi XE5 แล้ว
ดู Feature ได้ http://www.embarcadero.com/products/delphi
หากจะเทียบกับ Objective-C ก็ลองดูข้อมูลที่นี่ครับ http://vschart.com/compare/delphi-programming-language/vs/objective-c

ปัจจุบันแม้ในต่างประเทศก็ยังนิยมด้วย Delphi 7 เพราะความเล็กกระทัดและสะดวก
และเป็นเครื่องมือพัฒนาที่เป็นมาตราฐานไปแล้วสำหรับ Win32 แต่หลังจา Delphi 7 แล้วทาง
Borland พยา่ยามพัฒนาเครื่องมือสำหรับ Dot Net ของ Microsoft แต่ก็ก้าวไปได้ช้ากว่าทาง Microsoft เสมอ
จนเสียความเป็นผู้นำในตลาดด้านนี้ไป และสุดท้ายก็ถูก Embarcadero ซื้อไปดำเนินกิจการต่อ
และกลับมาเป็นผู้นำร่วมในด้านนี้อีกครั้ง ดูข้อมูลได้จาก http://en.wikipedia.org/wiki/Embarcadero_Delphi

หากกังวลเรื่อง License ก็พอมี Lazarus ที่เป็น Delphi compatible  ที่ http://www.lazarus.freepascal.org/
ตอนนี้ก็เก่้งมากแล้วครับ

ภาษาสำหรับ Computer ต่อไปคงไม่ใช่ C/C++ ซะทีเดียวนะครับ
โดย C/C++ คงน่าจะ่มีใครพัฒนาใน Computer กับงานใหญ่ๆกันต่อไปแล้ว (อาจเรียนเพื่อพื้นฐานไปยัง ภาษา Computer ตัวอื่นๆมากกว่า หรือใช้กับพวก embedded controller มากกว่าที่จะใช้พัฒนากับ เครื่อง PC/Computer พกพา ) หรือหากมีคงเป็นโปรแกรมเล็กๆมากกว่า เช่นพวก Core ของ OS , Driver หรือโปรแกรมทดสอบงานเล็กๆมากกว่า
สาเหตุเพราะภาษาเหล่านี้ มีข้อระวังในการเขียนมากมาย ซึ่งต้องพึ่งการจัดการด้วยตัวผู้เขียนโปรแกรมมาก ทำให้พัฒนาโปรแกรมใหญ่ๆลำบาก และใช้แรงงานมาก
ส่วนภาษา Computer ยุคหลังๆมานี่ ตัวเด่นๆอย่างเช่น Java,C#,Python เหล่านี้ ได้ถูกพัฒนาให้การพัฒนาโปรแกรมใหญ่ๆทำงานสะดวกมากกว่า จึงได้เห็นภาษาเหล่านี้มากขึ้นทุกทีในทุกวันนี้ แต่ก็มีข้อรายละเอียดในบางประเด็นนะครับกับภาษาบางตัว(เช่นใช้ได้กับบางเจ้าเท่านั้น) ลองดูข้อมูลการใช้งานแต่ละภาษาได้ที่นี่ http://en.wikipedia.org/wiki/Comparison_of_programming_languages
และแน่นอนว่าภาษายุคหลังๆมักปรับปรุงหรือแก้ข้อเสียจากของเดิมไปบ้าง

เครื่องมือที่ใช้กันใน Reverse engineer มีมากมายครับ
ตัวแก้ไขเรื่องนี้ก็มีมากเช่นเดียวกันครับ เช่นการใช้ Polymorphic code ก็เป็นตัวอย่างหนึ่ง
ขึ้นอยู่กับว่าจะทำไปใช้ประโยชน์ใด แต่โดยปกติก็ไม่มีการใส่หรือทำสิ่งเหล่านี้โดยไม่จำเป็นนะครับ
ยกเว้นอาจใช้เพื่อการปกป้องโปรแกรมหรือข้อมูลครับ
Delphi ไม่ตาย แต่มีคนใช้น้อยครับเมื่อเทียบกับคนใช้ C/C++
อืมโปรแกรมที่ได้รับความนิยมในปัจจุบันส่วนมากเขียนด้วย C/C++ ครับ เพราะมันเป็น native ของ OS โดยส่วนมาก แต่ปัจจุบันเค้านิยมที่ใช้ C++ มากกว่า C เพราะพวก library ที่มีมากกว่า แต่ถ้าต้องการมีประสิทธิภาพก็ C
ส่วน Java,C#,Python อย่าเอามาเทียบกันครับ หน้าที่มันคนล่ะแบบกัน
Java มันไม่ใช่ native ครับ คอมไพล์ครั้งเดียว แต่รันได้ทุน OS พร้อมกับคำยามที่ฝรั่งชอบพูด รันได้ทุก OS ก็มี bug ทุกที
C# เป็นภาษา .net โดยการทำงานรวมๆ จะช้ากว่า C/C++ //อันนี้ไม่แน่น เพราะไม่เคยลองหาอ่าน
python เป้นภาษาสคิปส์ ที่เป็น Cross-platform ครับ ... เหมาะแก่การทำงานที่ไม่ต้องการความเร็วมากๆ
บางทีพวกภาษาสคิปส์ก็เอามาใช้ผสมกับ C ในบางกรณีครับในการเขียน Driver... เช่น perl ที่มีพวก regex แล้วทำ text ที่ได้มาจาก regex ออกมาเป็นโค้ด C ที่ต้องการ <-- อันนี้เจอในคนสร้าง kernel linux ที่เค้าเขียนลง blog
ถ้าเปรียบเทียบความเร็ว บางครั้งอาจจะต่างกัน 10-100 เท่าก็ได้ครับ
โดยทั่วไปถ้าเน้นประสิทธิภาพ เค้าจะใช้ภาษาแบบ native กันครับ แต่ถ้าเน้นเวลาก็อีกเรื่องครับ มันขึ้นกับหลายๆ อย่าง
เวลา compiler อัพเกรดเป็นเวอร์ชั่นใหม่เนี่ย ตัวมันเองอาจจะแก้ bug หรือเพิ่ม library ต่างๆ ครับ
คำว่า bug ของผมเนี่ย อาจจะเป็น bug ที่ทำให้เกิด bufferoverflow จากตัว compiler เองก็ได้ครับ หรืออื่นๆ
bufferoverflow ถ้าคนรู้เรื่องพวก exploit เป็นอย่างดี จะรู้คับว่ามันทำอะไรได้บ้าง...
ส่วนเรื่อง Reverse engineer ผมว่า... มันมีวิธี ป้องกัน อยู่ครับ ส่วนวิธีการ ต้องลองกับตัวเองดูคับ บางทีทฤษฏี มันก็ไม่ได้ช่วยอะไรได้เลยครับ ถ้าไม่เคยลองทดลองจริงๆ ครับ
GNU/Linux User.
Underground computer group.
The GNU people aren't evil. but i'm evil. :P