มีอะไรใหม่สำหรับนักพัฒนา

รายการเปลี่ยนแปลงต่อไปนี้สำคัญสำหรับนักพัฒนาที่ใช้แพลตฟอร์มพัฒนา GNOME 2.28 ถ้าคุณไม่ได้สนใจรายการเปลี่ยนแปลงสำหรับนักพัฒนา ก็สามารถข้ามไปที่ หัวข้อ 6 การรองรับนานาภาษา ได้

นอกจากชุดเดสก์ท็อปแล้ว GNOME 2.28 ยังเป็นรุ่นล่าสุดของแพลตฟอร์มพัฒนา GNOME ซึ่งเป็นชุดของไลบรารีที่มี API และ ABI คงที่ ภายใต้สัญญาอนุญาต GNU LGPL ที่สามารถใช้สำหรับการพัฒนาโปรแกรมข้ามแพลตฟอร์มได้

แก้ไขการใช้ไลบารีที่ไม่สนับสนุนให้ใช้

ตั้งแต่ GNOME 3.0 เป็นต้นไป ส่วนของ GNOME ที่ไม่สนับสนุนให้ใช้หลายส่วนจะถูกตัดออกไป ซึ่งรวมถึงไลบรารีอย่าง libart_lgpl, libbonobo, libbonoboui, libglade, libgnome, libgnomecanvas libgnomeprint, libgnomeprintui, libgnomeui และ libgnomevfs สำหรับโปรแกรมที่เป็นส่วนหนึ่งของเดสก์ท็อป GNOME มีการดำเนิน งานเก็บกวาด จำนวนมาก เพื่อให้มั่นใจว่าไม่มีการใช้โค้ดที่ไม่สนับสนุนให้ใช้อยู่ ซึ่งจะช่วยให้การเปลี่ยนแปลงไปสู่ GNOME 3.0 ราบรื่นที่สุด

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

5.1 แพลตฟอร์มสะอาดขึ้น

มีความพยายามขนานใหญ่ที่จะลบมอดูลและฟังก์ชันที่กำลังจะเลิกใช้เพื่อมุ่งสู่ GNOME 3.0

ใน GNOME 2.28 มีไม่มีโปรแกรมใด ๆ ที่ขึ้นอยู่กับ esound, libgnomevfs, libgnomeprint หรือ libgnomeprintui อีกต่อไป

การปรับปรุงอื่น ๆ ของแพลตฟอร์ม GNOME ใน GNOME 2.28 มีทั้ง:

  • ตัดการใช้ libart_lgpl ออกจากสมอดูลองมอดูล (eog และ gtkhtml)
  • ตัดการใช้ libbonobo(ui) ออกจากมอดูลห้ามอดูล (gnome-control-center, gcalctool, gnome-media, gtkhtml และ accerciser)
  • ตัดการใช้ libglade ออกจากมอดูล 28 มอดูล (accerciser, alacarte, gnome-control-center, dasher, empathy, gcalctool, gnome-games, gnome-netstatus, gnome-nettool, gnome-mag, gnome-menus, gnome-panel, gnome-power-manager, gnome-screensaver, gnome-session, gnome-settings-daemon, gnome-system-tools, gnome-utils, gtkhtml, hamster-applet, libgnomekbd, orca, pessulus, seahorse, vino, vinagre, yelp และ zenity)
  • ตัดการใช้ libgnome ออกจากมอดูล 14 มอดูล (anjuta, gnome-control-center, dasher, evolution-webcal, gconf, gdl, gdm, gnome-desktop, gnome-media, gnome-system-tools, gok, gtkhtml, vino และ yelp)
  • ตัดการใช้ libgnomecanvas ออกจากมอดูลสามมอดูล (anjuta, gtkhtml และ zenity)
  • ตัดการใช้ libgnomeprint(ui) ออกจากมอดูลหนึ่งมอดูล (gnome-games)
  • ตัดการใช้ libgnomeui ออกจากมอดูล 16 มอดูล (anjuta, gnome-control-center, dasher, deskbar-applet, gnome-mag, gnome-media, gnome-settings-daemon, gnome-system-tools, gnome-utils, gok, gtkhtml, hamster-applet, nautilus, orca, vino และ yelp)
  • ตัดการใช้ libgnomevfs ออกจากมอดูลสามมอดูล (dasher, gnome-mag และ gnome-utils)
  • ในขณะนี้ มอดูลจำนวนมากจะแสดงข้อความที่อ่านง่ายและสะอาดกว่าเดิมขณะคอมไพล์ โดยใช้ AM_SILENT_RULES หรือ Shave ดูรายละเอียดเพิ่มเติมได้ที่ http://live.gnome.org/GnomeGoals/NicerBuilds
  • บางมอดูลเริ่มใช้ GIntrospection แล้ว — ดูรายละเอียดเพิ่มเติมได้ที่ http://live.gnome.org/GnomeGoals/AddGObjectIntrospectionSupport

โปรแกรมจำนวนมากยังได้ตัดการใช้ฟังก์ชันที่กำลังจะเลิกใช้ใน GTK+ และ GLib ออกไป และได้ใช้นโยบายใหม่ในการใช้แฟ้มส่วนหัวของ GTK+ และ GLib เฉพาะในระดับบนสุดเท่านั้น

5.2 GTK+ 2.18

GTK+ 2.18 เป็นรุ่นล่าสุดของชุดเครื่องมือ GTK+ ซึ่งเป็นหัวใจหลักของ GNOME ใน GTK+ 2.18 นี้ มีความสามารถใหม่สำหรับนักพัฒนา พร้อมรายการแก้ไขบั๊กอย่างเข้มข้น รวมทั้งงานทำความสะอาดสำหรับ GTK+ 3.0 ที่กำลังจะมาด้วย

กล่องโต้ตอบเลือกแฟ้มมีการปรับปรุงจำนวนหนึ่ง โดยในรุ่นนี้จะมีการจำสถานะการเรียงลำดับไว้ และมีค่าปริยายต่าง ๆ ที่ดีขึ้น เช่น การซ่อนแฟ้มสำรอง และแสดงคอลัมน์ขนาดแฟ้ม นอกจากนี้ยังมีการปรับปรุงการทำจุดไข่ปลาในแถบพาธด้วย

นอกจากนี้ GTK+ ยังมีการปรับปรุงอื่น ๆ อีกจำนวนหนึ่ง รวมถึง:

  • วิดเจ็ต GtkEntry ในรุ่นนี้ สามารถใช้แสดงแถบบอกความคืบหน้าได้
  • GtkEntry มีการแยก model-view
  • GtkLabel สามารถแสดง URI ที่ฝังตัวได้
  • การพิมพ์รองรับการพิมพ์เฉพาะส่วนที่เลือก
  • ส่วนควบคุมสำหรับตั้งหน้ากระดาษสามารถฝังลงในกล่องโต้ตอบสั่งพิมพ์ได้
  • ไอคอนสถานะตั้งหัวเรื่องได้ เพื่อเทคโนโลยีสิ่งอำนวยความสะดวกที่ดีขึ้น
  • มีวิดเจ็ตใหม่เพิ่มเข้ามา คือ GtkInfoBar เพื่อใช้แสดงข้อความในหน้าต่างหลักแทนการใช้กล่องโต้ตอบ
  • GTK+ สามารถคอมไพล์ด้วย automake รุ่นใหม่ได้ (ไม่จำเป็นต้องใช้ automake 1.7 อีกต่อไป) และสามารถคอมไพล์ในโหมดเงียบได้ด้วยคำสั่ง "make V=0"

5.3 GLib

GNIO ได้ผนวกเข้าใน GIO แล้ว และได้รวม API สำหรับการทำงานกับแอดเดรส IPv4 และ IPv6, การเปิดหาชื่อโฮสต์, การเปิดหา IP ย้อนกลับ, I/O ระดับล่างของซ็อกเก็ต, และการทำงานกับการเชื่อมต่อและบริการเครือข่ายต่าง ๆ

GArray, GMappedFile และ GTree มีการนับการอ้างอิง (reference count)

ลูปหลักรองรับบริบทปริยายของแต่ละเธรด

เพิ่มการรองรับการเข้าถึงแบบทั้งอ่านและเขียนด้วย GIOStream และคลาสย่อย

GLib รุ่นนี้ได้เพิ่มการรองรับข้อมูลกำกับของแต่ละแฟ้มด้วย

5.4 เอกสาร GNOME

เพิ่มการรองรับ Mallard ซึ่งเป็นภาษา XML ใหม่สำหรับเอกสาร GNOME ใน Yelp และ gnome-doc-utils

สำหรับนักเขียนเอกสาร Mallard เป็นภาษามาร์กอัป XML เต็มรูปแบบที่ออกแบบมาโดยเฉพาะสำหรับคู่มือวิธีใช้แบบอิงหัวข้อ ซึ่งเรียนรู้ได้ง่ายกว่า Docbook

คู่มือวิธีใช้ Empathy เป็นเอกสาร GNOME ฉบับแรกที่เขียนด้วย Mallard และยังเป็นเอกสารฉบับแรกที่เปลี่ยนมาใช้สัญญาอนุญาต Creative Commons Share-Alike 3.0 ซึ่งเอกสารทั้งหมดของ GNOME จะเปลี่ยนมาใช้ในอนาคต

5.5 บลูทูท GNOME

เพิ่มการรองรับปลั๊กอิน โดยสามารถใช้ได้ระหว่างตั้งค่าอุปกรณ์ เป็นการเพิ่มการรองรับอุปกรณ์บลูทูทให้กับโปรแกรม GNOME ต่าง ๆ

เพิ่มวิดเจ็คสมัยใหม่สำหรับเลือกอุปกรณ์บลูทูท ไม่ว่าจะเป็นปุ่มหรือเครื่องมือเลือก

5.6 เว็บเบราว์เซอร์ Epiphany

ด้วยการเปลี่ยนไปใช้ WebKit ของ Epiphany ทำให้มีการปรับปรุงจำนวนหนึ่งสำหรับนักพัฒนาใน Epiphany

WebKitGTK+ มาพร้อมกับการประมวลผล Javascript ที่รวดเร็วมาก กินทรัพยากรน้อย มี API แบบ GObject และเครื่องมือเฝ้าสังเกตเว็บในตัว นอกจากนี้ Epiphany ยังเพิ่มการรองรับส่วนขยายแบบ Seed (JavaScript) และการเพิ่มนี้ก็ทำให้การรองรับ Python ถูกตัดออกไป

Epiphany ยังใช้ libsoup สำหรับการทำ HTTP และการใช้พร็อกซีในรุ่นนี้จะทำงานเหมือนกันหมดทั้ง GNOME คุณสมบัติที่ขาดไปใน libsoup ก็มีเรื่องแคช HTTP และรูปแบบรหัสของเนื้อหา

สุดท้าย เมนูบริบทในช่องแสดงเว็บยังไม่มีการปรับสำหรับ Epiphany โดยเฉพาะ แม้ว่าจะใช้การแสดงของ WebKit แบบปริยาย

5.7 แอพเพล็ตติดตามการใช้เวลา

ฟังก์ชันทั้งหมดในรุ่นนี้เปิดให้ใช้ได้ผ่าน API แบบ introspectable ของ D-Bus

5.8 GNOME-Media

GNOME-Media ได้ตัดการรองรับ vumeter, CDDB และ GNOME-CD ออก

5.9 Totem

แบ็กเอนด์ xine-lib ได้ถูกตัดออกจาก Totem และได้เพิ่ม API สำหรับแจงแบบ asynchronous เข้ามา

5.10 Vinagre

Vinagre เครื่องมือแสดงพื้นโต๊ะเครื่องอื่นของ GNOME ได้เพิ่มระบบปลั๊กอินใหม่ การรองรับโพรโทคอลใหม่ในตอนนี้จึงเป็นเพียงการเขียนปลั๊กอินให้กับ Vinagre เท่านั้น ปลั๊กอินใหม่สำหรับ Vinagre มีทั้ง VNC และ SSH

5.11 Brasero

Brasero ได้ถูกแยกไลบรารีและเครื่องมือออกเป็น libbrasero-burn และ libbrasero-utils