Irc-Unix.net

Главная | Actual Topics | Обратная связь | Guest Book | В избранное | Сделать домашней
Категории
 System & Utilities
 Unix News
 OS Emulator
 Developing
 Learning/Education
 Games
 Humour
Каталог статей
Все статьи

Antispam
Статьи
Биллу Гейтсу тоже предлагают избавиться ...
Вымогательство в борьбе со спамом
Календарь

September, 2017
ПнВтСрЧтПтСбВс
123
45678910
11121314151617
18192021222324
252627282930
Опросы
Какой из этих ОС Вы отдаете большее предпочтение?

QNX
FreeBSD
Linux(any)
Solaris
Mac OS
Windows XP
Windows 2003
Что такое ОС? :)


Результаты
Другие опросы

Всего голосов: 325
Комментарии: 0
Ссылки

Архив Новостей
 September 2017 (13)
 August 2017 (13)
 February 2017 (14)
 January 2017 (19)
 December 2016 (16)
 November 2016 (16)
 October 2016 (21)
 September 2016 (18)
 August 2016 (16)
 July 2016 (16)
 June 2016 (20)
 May 2016 (18)
 April 2016 (15)
 March 2016 (22)
 February 2016 (17)
 January 2016 (15)
 December 2015 (15)
 November 2015 (22)
 October 2015 (20)
 September 2015 (17)
 August 2015 (25)
 July 2015 (20)
 June 2015 (23)
 May 2015 (21)
 April 2015 (17)
 March 2015 (19)
 February 2015 (9)
 January 2015 (23)
 December 2014 (9)
 November 2014 (13)
 October 2014 (12)
 September 2014 (18)
 August 2014 (20)
 July 2014 (10)
 June 2014 (12)
 May 2014 (12)
 April 2014 (10)
 March 2014 (22)
 February 2014 (10)
 January 2014 (8)
 December 2013 (26)
 November 2013 (53)
 October 2013 (40)
 September 2013 (48)
 August 2013 (63)
 July 2013 (56)
 June 2013 (52)
 May 2013 (49)
 April 2013 (67)
 March 2013 (74)
 February 2013 (63)
 January 2013 (62)
 December 2012 (62)
 November 2012 (66)
 October 2012 (68)
 September 2012 (48)
 August 2012 (75)
 July 2012 (60)
 June 2012 (71)
 May 2012 (69)
 April 2012 (85)
 March 2012 (86)
 February 2012 (90)
 January 2012 (81)
 December 2011 (103)
 November 2011 (118)
 October 2011 (74)
 September 2011 (2)
 June 2011 (110)
 May 2011 (118)
 April 2011 (111)
 March 2011 (112)
 February 2011 (101)
 January 2011 (119)
 December 2010 (117)
 November 2010 (118)
 October 2010 (131)
 September 2010 (117)
 August 2010 (226)
 July 2010 (351)
 June 2010 (305)
 May 2010 (319)
 April 2010 (343)
 March 2010 (329)
 February 2010 (311)
 January 2010 (312)
 December 2009 (266)
 November 2009 (156)
 July 2009 (101)
 June 2009 (279)
 May 2009 (365)
 April 2009 (348)
 March 2009 (347)
 February 2009 (323)
 January 2009 (318)
 December 2008 (237)
 November 2008 (155)
 October 2008 (334)
 September 2008 (310)
 August 2008 (343)
 July 2008 (362)
 June 2008 (322)
 May 2008 (634)
 April 2008 (1276)
 March 2008 (1658)
 February 2008 (250)
 January 2008 (6)
 November 2007 (1)
 September 2007 (1)
 June 2007 (1)
 May 2007 (1)
 March 2007 (1)
 January 2007 (2)
 December 2006 (1)
 October 2006 (2)
 September 2006 (1)
 August 2006 (2)

Richard Dale: KDE Bindings in KDE 4.5

System & Utilities

Aaron wrote an interesting blog about scripting and dynamic language support, and I thought I'd like to add some comments of my own about where we're heading with non-C++ languages in the KDE 4.5 SC release.

Language bindings are infrastructure, and they are a kind of compiler technology. We take the C++ headers and compile them into a form that allows the C++ methods to be called in other languages.

Infrastructure technologies only really succeed when they become 'boring and invisible'. For instance, there are many products which are based on the Linux kernel, but Linux is so 'boring and invisible' that for the most part, nobody even knows whether their television, GPS system or router contain Linux, and the products 'just work'. Similarly, the gcc compiler just works and we don't worry whether or not our latest build will seg fault, because the project has got to the stage where we can depend on gcc and only need to think about building our code, without be distracted by worries about whether or not it will work.

I've been working on various language bindings and technologies for the Qt and KDE apis for about 10 years now. At first, my work was 'exciting and visible', and involved much heroics in getting something like a Java binding to work at all for the whole Qt/KDE api, let alone being complete, reliable and easily maintained. I'm excited to think that we are finally getting to the point where people will think language bindings are 'boring' and they expect them to just work.

The major bindings innovation for KDE 4.4 has been Arno Rehn's new C++ 'Smoke' library generator that he wrote for his Google Summer of Code project. We now have an industrial strength tool that can be used by normal people (as opposed to language bindings gurus) to produce language independent bindings libraries to wrap any KDE library. It is just a matter of creating a fairly simple XML file that consists mainly of the names of that classes you want to include, and a pretty standard simple cmake file to go with it, and then you're done. With a bit of documentation of TechBase about how to do this, and maybe some helper scripts we can make this really easy. This means that we can make a 'cultural shift' where people expect to create a bindings library for every KDE project as a matter of course, and that code will be part of their project instead of being inside the kdebindings svn module.

Mark Kretschmann of the Amarok project made some interesting comments on Aaron's blog about QtScript is the best language application scripting and extension. This is because on Windows, and the Mac to a lesser extent, even very common languages like Python or Ruby can lead to quite serious 'dependency hell' problems. I know how much Mark and some of the Amarok team like Ruby, and so I know that they wouldn't have switched to a QtScript-only policy for Amarok without pretty good reason.

Another Amarok guy, Ian Monroe started a QtScript binding based on the Smoke libraries a few months ago, and recently I've been working hard on the JSmoke bindings. They are now looking pretty complete with 32 QtScript plugins covering the Qt and KDE libraries, and I hope to move them from gitorious to the kdebindings svn module once the dust has settled from the KDE 4.4 SC release. I'm really pleased with how the code has turned out - there isn't much of it in the core runtime just 3300 LOC including white space and comments, it is easy to read and does a lot. What more could I ask for? I think I can pay it my highest complement and say the code is 'boring'. It has been a 10 year odyssey for me, to get to the point where I can produce something so dull, so unheroic that it will just disappear into the background. People will just take for granted that they can use their pick of over 2000 classes and their accompanying methods to throw together JavaScript complete applications, and to extend existing C++ KDE applications or write plugins.

So to summarize, I think we need to have a social change within the KDE project where languages bindings for non-C++ languages and scripting, are no longer 'fringe activities', but are part of the mainstream. We have made enough technical progress to be able make that change.

I have been talking about the Smoke based bindings, but I'm pretty sure Simon Edwards and others have got the PyKDE bindings to a similar stage of maturity, and I've seen some signs of non language bindings guys start to produce Python bindings recently which is really good. I hope more Python bindings will be created as part of a KDE app or library and be maintained in the same svn or git module, rather than in kdebindings.

A final exciting piece of news - today Chris Burrel announced this on the kdebindings mailing list:

"I'm interested in committing the work I've done on PerlQt4 to the
kdebindings svn tree, but I'm not really sure how to proceed. The
project is currently maintained at http://code.google.com/p/perlqt4/.
I'm applying for an svn account, so I won't be able to do anything
until that gets approved, but I'm wondering where I could commit the
code. I'm also interested in maintaining the history of the files,
but I'm not sure if that's possible. Are you guys cool with me
committing this stuff?"

Woo hoo! I can't wait for KDE 4.5..





  


Разместил: Planet KDE | Дата: 19.01.2010 | Прочитано: 628 | Раздел: System & Utilities   

Рейтинг статьи

Средняя оценка: 0.00/0Средняя оценка: 0Всего голосов:0

Отлично
Хорошо Нормально Пойдёт Плохо


Смотрите также связанные темы

19.04.2008 A Ruby Plasma Data Engine based on DBPedia SPARQL queries
Submitted by richard dale on Thu, 04/17/2008 - 19:08. KDE General I've been playing with using KIO::get() to make queries on the DBPedia SPARQL endpoint, parse the XML result set and convert it to be used by a ...
25.02.2017 PyKDE
Bindings are implemented as a set of Python modules that correspond to libraries in the kdelibs package. PyKDE supports nearly all classes and methods in these libraries.
28.02.2008 Опубликовано расписание визита Столлмана в Москву
Василий Леонов, занимающийся организацией посещения Москвы Ричардом Столлманом (Richard Stallman), опубликовал план визита и выступлений основателя движения за свободное программное обеспечение. 3 марта в 11:00 пройдет встреча в Институте системного программирования РАН...
07.03.2008 lang/smalltalk - 3.0.2
- Update to 3.0.2 - See smalltalk.gnu.org for what's new in 3.0 - Optional postgresql bindings - Update website link and remove references to old maintainers
15.03.2008 audio/abraca - 0.2
- update xmms2 to 0.4DrKosmos - update gxmms2 to 0.7 and unbreak - bump soversion as needed - trim some clients (azrael, nyello) and bindings (java) that are no longer maintained Submitted by: Max Khon <fjoe@samodelkin.net>
15.03.2008 audio/azrael - 0.3.5_1
- update xmms2 to 0.4DrKosmos - update gxmms2 to 0.7 and unbreak - bump soversion as needed - trim some clients (azrael, nyello) and bindings (java) that are no longer maintained Submitted by: Max Khon <fjoe@samodelkin.net>
22.03.2008 audio/sphinx3 - 0.7
Sphinx 3 is a frontend to the sphinxbase, a large-vocabulary, speaker-independent, continuous speech recognition engine. Once the system is built, try running the Perl script sphinx3-demo. The sphinx3-test script should run sphinx3-batch over an example utterance of "go forward ten meters." WWW: http://www.speech.cs.cmu.edu/sphinx/ PR: ports/121612 Submitted by: Richard Neese <r.neese@gmail.com>
22.03.2008 audio/pocketsphinx - 0.4.1
Pocket Sphinx is a frontend to the sphinxbase large-vocabulary, speaker-independent, continuous speech recognition engine. This is an early release of a research system. The APIs and function names are likely to change, and several tools still need to be made available to make this all complete. Once the system is built, try running the Perl script sphinx2-demo. The pocketsphinx-test script should run pocketsphinx-batch over an example utterance of "go forward ten meters." WWW: http://www.speech.cs.cmu.edu/sphinx/ PR: ports/121610 Submitted by: Richard Neese <r.neese@gmail.com...
10.06.2008 Столлман раскритиковал использование СПО в системе карт Oyster
Основатель движения за свободное программное обеспечение, Ричард Столлман (Richard Stallman), высказался о "неэтичном" использовании GNU/Linux и свободного ПО в лондонской системе транспортных карт Oyster...
01.07.2008 Перевод статьи "20 Great Quotes from Richard M. Stallman"
Доступен полный перевод статьи "20 великих изречений Ричарда Столлмана" "Я мог бы зарабатывать деньги программированием, и, возможно, мне нравилось бы писать код. Но я знал, что на этом моя карьера закончилась бы, и, оглядываясь назад, я увидел бы, что воздвигал стены, разделяющие людей, и почувствовал бы, что всю жизнь делал этот мир хуже." Оригинал статьи:
Нет комментариев. Почему бы Вам не оставить свой?
Вы не можете отправить комментарий анонимно, пожалуйста зарегистрируйтесь.
Google Search
Google

Web irc-unix.net

Топ Новостей
1: KDE Community announces fully open source Plasma Mobile
Hot NEWS!
Просмотров - 547


2: Using Digikam and ownCloud to share family pictures
Просмотров - 517

3: Apply agile methodologies to upstream development environments.... if you can.
Просмотров - 492

4: KWallet5 can be auto-unlocked during login again
Просмотров - 479

5: Interview with Laura
Просмотров - 454

6: Use ownCloud provided Packages, then VM, then Zip, no distro packages.
Просмотров - 451

7: Plasma Components on Android: Accelerating Subsurface Mobile Development
Просмотров - 441

8: VMware Workstation 11 and kwin - hangs and hiccups (solved?)
Просмотров - 420

9: debian/rake: Ruby DH Sequencing?
Просмотров - 420

10: Plasma 5 Powers KaOS Productivity
Просмотров - 410

11: KWrite on Mac – Application Bundle
Просмотров - 404

12: One year old: Document Liberation Project
Просмотров - 385

13: FOSDEM Desktops DevRoom 2016 Call for Participation
Просмотров - 383

14: New Year Calligra Words Sprint
Просмотров - 380

15: digiKam 5.0.0-beta2 is released
Просмотров - 378

Google 120X240
Ссылки

Главная | Actual Topics | Статьи | Обратная связь | Guest Book
Генерация: 0.868 сек. и 13 запросов к базе данных за 0.833 сек.
Powered by SLAED CMS © 2005-2007 SLAED. All rights reserved.