LINUX.ORG.RU

Вышла «Рождественская»(pro) версия ROOTa


0

0

ROOT - это ОО многоплатформенная framework
широко используемая в физике высоких энергий (и не только)
основанная на C++ интерпретаторе (http://root.cern.ch/).

Среди свежих вещей особо хотелось отметить:
- появление Gui Buildera (читай "Qt Designer, Glade")http://root.cern.ch/root/htmldoc/TGui...
- новый Canvas редактор.
См. http://indico.cern.ch/getFile.py/acce...
- расширенная поддержка ввода/вывода для STL контейнеров
- добавление векторной графики к TImage/TASImage классу
http://root.cern.ch/root/htmldoc/TASI...
- ... и многое другое ;-)

От ROOT-team всех поздравляю с наступающим Новым Годом!

>>> Подробности



Проверено: Demetrio ()

Вот так читаешь ЛОР и узнаёшь что-то новое. Я раньше об этой штуке и не слышал. А ты реально её используешь. Кстати, причём тут физика высоких энергий?

anonymous_incognito ★★★★★
()
Ответ на: комментарий от carrot

Расскажи, пожалуйста, поподробнее о механизме работы с памятью. Каким образом это реализовано в "интерпретаторе C++"? С помощью malloc() или как-то иначе?

Mammoth
()

Вопрос как к One of the main developers of ROOT GUI widgets and components. - на фига это нужно было делать? Почему нельзя было взять готовые тулкиты? В текущей версии виджеты уже научились понимать русский язык? Последний раз когда я пробовал root (это было давно, но с тех пор желания попробовать его еще раз у меня не возникало) - с этим была какая-то задница, типа из консоли отобразить русский текст на графиках мне удавалось, а вот из гуевых приблуд - ни фига.

geekkoo
()
Ответ на: комментарий от MiracleMan

> поддерживаю, где бы с этим делом можно было бы поподробнее ознакомится..

:) Я так понимаю, что на сайте Корня.

Я, в принципе, узнал, что мне было наиболее интересно...
Цитата с http://root.cern.ch/root/html/TObjArray.html :
"The array expands automatically when objects are added..."

Вот они - блага скриптовости! :)
Интересно - распространяется ли эта фича на скомпилированные скрипты?

Mammoth
()
Ответ на: комментарий от Mammoth

да нет, я это понимаю.. всё это здорово.. но что-то никак в голове модель проэкта не укладывается,.. что-то напоминающее в зачатках я и сам когда-то по Страуструпу моделировал.. потому и интересно.. вроде бы похоже, но как-то пока не ясно,.. возможно надо поближе с исходниками ознакомится.. попробуем-с.. :-)

MiracleMan ★★★★★
()
Ответ на: комментарий от macavity

>Вот только не надо про то, что в ЦЕРНе изобрели интернет

Конечно же, в ЦЕРНе не изобретали компьютерную сеть как таковую, этого они себе никогда и не приписывали. Но http-серверы, клиенты, html в первоначальном виде, все то, что лежит в основе сегодняшнего состояния, было развито именно в ЦЕРНе.

А по поводу рута - ему еще _очень_ далеко до того уровня удобства в интерактивной работе, что есть в PAW.

anonymous
()
Ответ на: комментарий от anonymous

> А по поводу рута - ему еще _очень_ далеко до того уровня удобства в интерактивной работе, что есть в PAW.

Да конечно. Один autoexpansion в paw чего стоит ;-))

anonymous
()
Ответ на: комментарий от anonymous

>Да конечно. Один autoexpansion в paw чего стоит ;-)

Он там есть, неявно - команды можно сокращать. Есть и алиасы. В руте даже алиасов нет :)))

anonymous
()
Ответ на: комментарий от anonymous

А расскажите, кто этим пользуется, в двух словах - зачем эта библиотека нужна и в каких случаях её имеет смысл использовать..

Я так понял для обработки больших объемов информации, можно какой-нибудь пример и в чем удобства по сравнению с чистым языком c++?

bender ★★★★★
()
Ответ на: комментарий от anonymous

> >Вот только не надо про то, что в ЦЕРНе изобрели интернет

> Конечно же, в ЦЕРНе не изобретали компьютерную сеть как таковую, этого они себе никогда и не приписывали. Но http-серверы, клиенты, html в первоначальном виде, все то, что лежит в основе сегодняшнего состояния, было развито именно в ЦЕРНе.

Опять лажа: Based on NCSA Mosaic. NCSA Mosaic(TM); was developed at the National Center for Supercomputing Applications at the University of Illinois at Urbana-Champaign.

> А по поводу рута - ему еще _очень_ далеко до того уровня удобства в интерактивной работе, что есть в PAW.

Да, PAW - это рулез!

macavity
()
Ответ на: комментарий от Mammoth

о механизме работы с памятью

Mammoth,
интерпретатор написан полностью на С,
поэтому где-то в губине malloc,calloc,realloc etc.
Хотя по-правде в глубины CINTа (интерпретатор) я не лез,
так на поверхности. Но, ничего такого, как "memory pools"
в Апачах и "automatic garbage collection" там нет.

carrot
() автор топика
Ответ на: комментарий от geekkoo

на фига это нужно было делать?

geekkoo,
хороший вопрос.
Пред тем, как отвечать на него, хочу поправить,
я "One of the main developers of ROOT GUI widgets and components",
но не идеолог, а больше кодировшик (технарь).

Если я правильно понял вопрос, то он звучит так
"почему не Qt и не GTK?" (поправь, если не так)

1. Есть версия ROOTa написаная полностью на Qt http://root.bnl.gov/
Она входит в дистрибутив ROOTа и активно развивается.

2. Зависимость от внешней библиотеки, которую ты не можешь
сам "поравить" - это всегда "pain in the ass", особенно, когда
(как в случае ROOTa) дело касается многоплатформенности и
"event loop, event processing, multithreading".

3. Сюда можно добавить, что
- Qt использует "расширение" C++, что не правильно.
То что делает Qt MOC, все это делает CINT и гараздо блее того.
- M$ windows версия Qt не GPL, и платная, что неприемлемо для ROOTa
(1/3 users работают под M$ windows)
- GTK, сама имеет слишком много зависимостей,
достаточно попробывать собрать не GTK, a gdk под M$ windows.

В настоящий момент ROOT содержит комплект основных GUI классов,
которые, может не так sexy & fat, как Qt и GTK, но в скором
будущем я надеюсь будут "не хуже" (как всегда, я до глупости оптимист ;-)


carrot
() автор топика
Ответ на: комментарий от macavity

offtopic::www

macavity ,
конечно, интернет в Церне не изобретали,
если не считать HTML, HTTP, создание первого web browsera
и web servera.

++
Хотя, как утверждают злые языки "все было не благодаря,
а вопреки" ... впрочем тоже самое с ROOTом

carrot
() автор топика
Ответ на: offtopic::www от carrot

удобства в интерактивной работе, что есть в PAW

по-конкретнее, пожалуйста.
Желание (пожелание) usera, закон к исполнению

++
IMHO в PAW вообще ен было никакй интерактивности.
Интерактивность посмотрите в новой версии.
Some screenshots, можно увидеть на постере из CHEP2004
http://indico.cern.ch/getFile.py/access?contribId=170&sessionId=24&re...

Конечно PR у ROOTа плохая. Надеюсь в следующем году
мы обновим вебстраницу и дополним ее "sexy & eye-candy screenshots"

carrot
() автор топика

autoexpansion

Если правильно понял, то речь идет о
"command expansion by TAB pressing", которая существует в
некоторых линукс шеллах (про PAW не помню).
Такая возможность существует в ROOTe

carrot
() автор топика
Ответ на: autoexpansion от carrot

в двух словах - зачем эта библиотека нужна

benderу,
1. имеет C++ интерпретатор
- очень полезна для начинающих програмистов.
- очень хороша для "fast prototyping". Обычный цикл
работы: пишешь макрос, пробуешь его из под интепретатора,
затем компилируешь его прямо из под интерпретатора,
вставляешь в код.

2. имеет большой набор математических классов, методов и набор
средств для GUI & manipulation.
Походит, как замена Matcad & Mathematica

3. C++ интерпретатор автоматически генерит Streamer метод
для класса (читай сириализация), т.е. обьект калсса
сразу готов "к спасению" в файл. ROOT файл - это "файловая
систем внутри файла", пример http://carrot.cern.ch/CarrotExamples/hsimple.root

4. Как замена для Qt/GTK для несложных GUI приложений.
Так же как Qt/GTK имеет signal-slot mechanism
http://root.cern.ch/root/HowtoSignalSlot.html,
a теперь и Gui Builder ..

Можно еще , но уже не в двух словах ...

carrot
() автор топика
Ответ на: В руте даже алиасов нет ... от carrot

обработки больших объемов информации

bender ,
конечно ROOT I/O заточен под обработку
больших обьемов информации, т.е. раз пишешь, много раз читаешь
(лучше говорить "make query"). В этом аспекте ROOT поддерживает
файлы обьемом более 2Гб, имеет специальные классы TTree/Ntuple
(аналог SQL tables) с "fast query mechanism" (3-4 раза быстрее,
чем MySQL queries на локальной машине)
Пример ntuple можно увидеть здесь
http://carrot.cern.ch/CarrotExamples/hsimple.root?/2374433/ntuple;1/

carrot
() автор топика
Ответ на: ... поподробнее ознакомится ... от carrot

... русский текст ...

geekkoo,
с интернационализацией/локализацией до сих пор плохо,
по-видимому, потому что большинству юзеров это не было нужно.
IMHO, нетрудно поправить. Предложения принимаются.
Как всегда не хочется изобретать велосипед.
Что лучше "типа Pango (GTK)", или "tr from Qt"?

carrot
() автор топика
Ответ на: на фига это нужно было делать? от carrot

>>Если я правильно понял вопрос, то он звучит так
"почему не Qt и не GTK?" (поправь, если не так)

Вообще-то я имел в виду TK. Кроссплатформенность, легко интегрируется в любые языки. Multithreading - это, конечно, вопрос.

А что в root происходит с локализацией? Насколько я помню, мне удалось настроить русский ввод в root-овой консоли с помощью set_locale (которая имелась в root-овой либе), но желаемого эффекта на гуевый интерфейс это не произвело (по крайней мере ввод русского текста не работал). Что-то в этом направлении делается? Или я отстал от ROOT-овой жизни?

geekkoo
()
Ответ на: комментарий от geekkoo

geekkoo,
TK - это tcl/tk?
ROOT тоже не threadsafe. Когда я упоминал "Multithreading", я
имел ввиду M$ windows версию, которая реализована с помощью
нескольких threads (одновременно console&gui приложение).
Oдним из "событий" последней версии была интеграция ASImage
библиотеки (автор Саша Васько, он же автор AfterStep desktop).
ASImage имеет "built-in internationalization", т.е. почти все
"на месте" ...

carrot
() автор топика

А как из него взять только интерпретатор? Мне остальное особо без надобности... может это есть где-то на сайте, но я бегло пробежав по ссылкам не нашел. :(.

eXOR ★★★★★
()
Ответ на: ... русский текст ... от carrot

Прошу прощения пропустил этот ваш пост.
>>IMHO, нетрудно поправить.
>>Что лучше "типа Pango (GTK)", или "tr from Qt"?
Вообще-то бы хотелось чтобы тулкит хотя бы понимал установленную локаль . Про QT я не могу сказать ничего определенного, но с Pango проблем больше, чем вам кажется (или меньше чем кажется мне?). Тут проблема в том, что Pango использует внутреннюю utf кодировку и не факт, что она будет совпадать с системной кодировкой. В преспективе это требует, что любая строка используемая в root должна быть multibyte или вам придется каждый раз конвертировать из внутренней кодировки во внешнюю (учитывая при этом, что вам еще потребуется отслеживать откуда пользователь вводит текст - с консоли или из гуя).
Я столкнулся с этой проблемой (и так ее и не решил), когда пытался портировать GTK2 под R (у R все тулкиты внешние). У меня локаль однобайтная, в R строки тоже однобайтные. В GTK виджетах ,запущенных под R, отображение текста, воод - все прекрасно работает. Попытка же получить текст из виджета в среду или наоборот из среды в виджет - облом. На выходе имеем кучу мусора. В GTK1.2 (которая не использует Pango) - все замечательно. Это я ктому, что для того чтобы использовать Pango, вам придется перетряхнуть весь root на предмет его utf-ности.

geekkoo
()
Ответ на: комментарий от carrot

Parallel Computing in R, Luke Tierney, luke@stat.uiowa.edu, R language, R and Omegahat, Statistics

Ага, он самый - Люк в их команде весьма заметный кадр. Байт-компайлер под R сейчас ваяет. А talk был про его пакет snow (simple network of workstations) - надстройка над pvm/mpi.

geekkoo
()

>ROOT - это ОО многоплатформенная framework

Ага, а Антихер --- крутейшая ось?

anonymous
()
Ответ на: комментарий от macavity

тасавиту тебе что бабло мозги разьело? www был придуман именно в церне. а то что браузер мозаик в иллинойсе придумали с этим никто не спорит. нагугли про бернерса

anonymous
()
Ответ на: Ага, а Антихер --- крутейшая ось? от carrot

PAW vs ROOT

Хотелось бы поставить точку на этом вопросе.
PAW написали те же люди, которые сейчас пишут ROOT,
а именно, Rene Brun и Olivier Couet.
Исторически ROOT писался (в 1995 году), как C++ версия PAW, hbook etc.
PAW можно рассматривать, как нулевую версию ROOTа (ROOT-0.0).
Все, что было в PAW, все это есть и в ROOTe.

Сравнивать PAW и ROOT глупо, все равно, что сравнивать старую
версию с новой. Не вводите людей в заблуждение!

Марк

carrot
() автор топика

Появилась ли в новой версии нормальная поддержка STL (в частности map и list) И зачем вообще там делали TList ?

LJ
()
Ответ на: комментарий от LJ

STL

Ответ - "Да", более того см. Release Notes
http://root.cern.ch/root/Version402.news.html

ROOT container классы (TList etc) появились, потому что
в 1995-2000 годы не все компиляторы поддерживали STL.
На пример, мы до сих пор подчас имеем "неразрешимые" проблемы с VC6 & STL.

carrot
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.