Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
16 Ноября 2024, 07:10:05


Войти


Страниц: 1 2 [3] 4 5 6   Вниз
  Печать  
Автор Тема: Программирование под linux  (Прочитано 84282 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
AleksK
Продвинутый
***

Карма: 2
Сообщений: 220


WinXP, Russian Fedora 10.1


Награды
« Ответ #30 : 04 Марта 2008, 09:25:46 »

Налету это значит, что компилируются те классы к которым в данный момент происходит обращение, причем заметь, что они именно компилируются, из-за этого выполнение программы несколько замедляется. Но опять же при выполнение особо ресурсоёмких кусков кода, когда производится обработка больших объёмов данных, откомпилированные классы остаются в памяти, соответственно в этом случае программа будет работать не медленнее, а возможно и быстрее чем если бы она была на писана на чистом С, благодаря тому что компиляция производится с учётом аппаратных особенностей именно того компьютера на котором программа выполняется. И по-моему ты сам это подтвердил:
Цитировать
Простейший пример: BubbleSort на С будет медленнее, чем QuickSort на C#, при достаточно большом количестве элементов. Хотя делают вроде одно и то же
Записан
NeO
Злобный админчик
Администратор
*****

Карма: 62
Сообщений: 2376

Debian Stretch


WWW Награды
« Ответ #31 : 04 Марта 2008, 09:41:10 »

Налету это значит, что компилируются те классы к которым в данный момент происходит обращение, причем заметь, что они именно компилируются, из-за этого выполнение программы несколько замедляется. Но опять же при выполнение особо ресурсоёмких кусков кода, когда производится обработка больших объёмов данных, откомпилированные классы остаются в памяти, соответственно в этом случае программа будет работать не медленнее, а возможно и быстрее чем если бы она была на писана на чистом С, благодаря тому что компиляция производится с учётом аппаратных особенностей именно того компьютера на котором программа выполняется. И по-моему ты сам это подтвердил:
Цитировать
Простейший пример: BubbleSort на С будет медленнее, чем QuickSort на C#, при достаточно большом количестве элементов. Хотя делают вроде одно и то же
Шокирован вообще-то моё высказывание в переводе на человеческий звучит примерно как "Если, у того кто пишет на С, руки из жопы, то выполнятся программа будет как ни крути медленее написанной нормальным человеком на любом другом языке" Улыбка

PS Теста ради сейчас наваяю какую-нить жуткую чушь ( типа пустого цикла на 100000 итераций Улыбка ) на C и C# и посмотрим сколько оно будет выполнятся Улыбка
Записан
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #32 : 04 Марта 2008, 10:18:07 »

Судя по тому что написали в LF, уже есть достаточно много программ написанных на Mono под Linux и их число будет расти. А Java и .NET это не совсем корректное сравнение. Microsoft удалось избежать тех подводных камней на которые в своё время напоролась SUN. В Java не смогли реализовать возможность использования нескольких языков, не сделали нормальный JIT-компилятор. А это очень плохо сказалось как на программировании под Java так и на скорости работы программ.
А на счёт реальных примеров хороших программ, то посмотрите на среду разработки в C# SharpDevelop под Windows или MonoDevelop под Linux онb полностью написана на C# и по своим возможностям превосходят большинство других сред разработки.
Да и цитата с linux.org.ru не самый хороший пример, там обитает очень много ортодоксов Улыбка

Ложь!
Другие языки:
 - Groovy - реально работает, вполне применим, компилируется в class файлы, полностью эквивалентен жабе,
   очень удобен для прототипирования и всяких мелких поделок, очень легко встраивается в жабу (меньше 10 строчек кода, кто не верит - могу выложить пример), причем из встроенного груви можно полноценно общаться с жабой (синглтон там дернуть, или передать скрипту ссылку на что-либо, принудительно объявив переменную).
 - Scala - гибридный (функционально-ООП) ЯП, реально работает, вполне применим, компилируется в class файлы, полностью эквивалентен жабе. Встраивается в жабу несколько хуже - нужны пляски с бубном, но у нее несколько другая ниша - она может быть полноценной заменой жабе. Есть оптимизация хвостовой рекурсии.

Оба языка поддерживают xml на уровне синтаксиса и могут использоваться как замена XSLT (XSLT с расширенями, например для работы с БД - это страшно). Плюс в скале есть всякие вкусности типа навороченного паттерн матчинга (работает и для XML тегов) и ОГРАНИЧЕННОГО множественного наследования (см. trait' ы).

Смотрим:
http://scala-lang.org, groovy
http://groovy.codehaus.org

Кроме них существуют еще:
 - JRuby
 - Jython
 - куча всякой мелочи: SISC (это такая Scheme), Jaskell (сочинение на тему Haskell) и пр.
Но ими не пользовался.

Так что, господа, меньше верьте пропаганде - в жабе много языков, по поводу нормального JIT компилятора даже говорить не хочется.... зачем?

MonoDevelop превосходит другие среды? Ну-ну - передо мной открыт Netbeans - поддержка Java (J2SE/J2EE/J2ME/BPEL (веб сервисы мышкой) + встроенный сервер приложений GlassFish + веб контейнер tomcat + графический редактор для Swing и JSF + отладчик (в том числе удаленный) + профайлер (как по процессору, так и по памяти)) + JRuby/Ruby и Rails + можно доставить дополнительный плагин для C/C++  + UML редактор с прямым и обратным преобразованием (код<->диаграммы). Про всякую мелочь: редактор XML/XSD/XSLT, клиент к БД и пр. я молчу. А ведь есть еще Eclipse, где наворотов на порядок больше (в том числе, например, плагин с поддержкой скалы и эрланга). А есть же еще IDEA....

P. S. Господа, прежде чем звиздить о чем либо стоит сначало разобраться.
P. P. S. Я лоровский ананимус со стажем! (И жабЕр по совместительству....)
Записан
RemDerBauer
Rebuild world
Глобальный модератор
*****

Карма: 14
Сообщений: 1886


Ubuntu forever


Награды
« Ответ #33 : 04 Марта 2008, 14:02:19 »

вот мы и дожили)) сначала появился ЛОРовский анонимус со стажем, следом появятся местные анонимусы, нарабатывающие стаж, а следом переименуем сайт в lipetsk.org.ru))) и слава у сайта будет такая же немного придурковатая, как у ЛОРа
Записан

Мы говорим Linux, подразумеваем Ubuntu......
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #34 : 04 Марта 2008, 14:09:55 »

вот мы и дожили)) сначала появился ЛОРовский анонимус со стажем, следом появятся местные анонимусы, нарабатывающие стаж, а следом переименуем сайт в lipetsk.org.ru))) и слава у сайта будет такая же немного придурковатая, как у ЛОРа

Да ладно, здесь я троллить не собираюсь.

P.S. Маленький оффтопик - вообще мой ник mini_root, но при попытке зарегится с ником в котором есть подстрока 'root' меня посылают ("Пользователь с именем root уже существует"), я понимаю что это типо защита, но работает она слишком жестко.
Записан
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #35 : 04 Марта 2008, 14:38:55 »

Налету это значит, что компилируются те классы к которым в данный момент происходит обращение, причем заметь, что они именно компилируются, из-за этого выполнение программы несколько замедляется. Но опять же при выполнение особо ресурсоёмких кусков кода, когда производится обработка больших объёмов данных, откомпилированные классы остаются в памяти, соответственно в этом случае программа будет работать не медленнее, а возможно и быстрее чем если бы она была на писана на чистом С, благодаря тому что компиляция производится с учётом аппаратных особенностей именно того компьютера на котором программа выполняется. И по-моему ты сам это подтвердил:
Цитировать
Простейший пример: BubbleSort на С будет медленнее, чем QuickSort на C#, при достаточно большом количестве элементов. Хотя делают вроде одно и то же
Шокирован вообще-то моё высказывание в переводе на человеческий звучит примерно как "Если, у того кто пишет на С, руки из жопы, то выполнятся программа будет как ни крути медленее написанной нормальным человеком на любом другом языке" Улыбка

PS Теста ради сейчас наваяю какую-нить жуткую чушь ( типа пустого цикла на 100000 итераций Улыбка ) на C и C# и посмотрим сколько оно будет выполнятся Улыбка

Лучше рекурсивное (не итерационное!) вычисление чисел Фибоначчи:
Пример на скала:
object fib extends Application
 {
  def fib(_n: int): int =
   if (_n==0) {0;}
   else if (_n==1) {1;}
   else {fib(_n-1)+fib(_n-2)};
 
  override def main(_args: Array[String]): unit =
   {
    var mid : long = 0L;
    for (val j <- 1 to 5)
     {
      Console.println("Iteration: "+j);
      val startTm : long = System.currentTimeMillis();
      Console.println(fib(46));
      val endTm : long = System.currentTimeMillis();
      Console.println("Total time [ms]:"+(endTm - startTm));
      mid = mid + (endTm - startTm);
     }
    Console.println("Mid time [ms]:"+(mid/5.0));
   };
 };


Результат:
Iteration: 1
1836311903
Total time [ms]:24300
Iteration: 2
1836311903
Total time [ms]:24211
Iteration: 3
1836311903
Total time [ms]:24377
Iteration: 4
1836311903
Total time [ms]:24179
Iteration: 5
1836311903
Total time [ms]:24208
Mid time [ms]:24255.0

Машинка: Athlon X2 4600, 2Gb, Fedora 8, JDK 1.6u4.

P. S. Хотя вообще не стоит слишком сильно полагаться на эти тесты - в рельных прогах все равно узким местом будет I/O, сеть и БД, и от скорости числодробление мало что зависит.
Записан
kaigerda
Юзверь
**

Карма: 0
Сообщений: 33


Награды
« Ответ #36 : 04 Марта 2008, 15:21:54 »

Нужно поставить и настроить wine, поставить кряченную 1с и там начинать программить
Записан
C0va
Продвинутый
***

Карма: 0
Сообщений: 219


Ubuntu 7.10


Награды
« Ответ #37 : 04 Марта 2008, 16:25:17 »

У-у-ххх... Как вы тут разогнались!! Улыбка
Вобщем я сделал выводы:
1. Лучше начинать программировать с начала, без использования фреймвоков (подтверждаю своим опытом на php)
2. Первым рекомендуется выбрать язык С, потом плюсы, потом че хочешь Улыбка
3. Каждый программирует там где ему удобнее, общих рекомендаций нет и это подтверждает горячий спор в этой теме...
Записан
C0va
Продвинутый
***

Карма: 0
Сообщений: 219


Ubuntu 7.10


Награды
« Ответ #38 : 04 Марта 2008, 16:27:05 »

kaigerda, а причем тут wine и 1C ?? Помоему это вобще не язык программирования как таковой, а просто средство разработки узкоспециализированных программ (всмысле основа то все равно остается 1С:Предприятие..)
Записан
kaigerda
Юзверь
**

Карма: 0
Сообщений: 33


Награды
« Ответ #39 : 04 Марта 2008, 16:45:27 »

kaigerda, а причем тут wine и 1C ?? Помоему это вобще не язык программирования как таковой, а просто средство разработки узкоспециализированных программ (всмысле основа то все равно остается 1С:Предприятие..)
А что тогда понимается под языком программирования? А при чём тут 1с? Да ни при чём, так же как и .NET, кстати. И ещё, забыл сказать, что за 1с деньги платят гораздо чаще чем за всё остальное вместе взятое
Записан
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #40 : 04 Марта 2008, 17:22:55 »

kaigerda, а причем тут wine и 1C ?? Помоему это вобще не язык программирования как таковой, а просто средство разработки узкоспециализированных программ (всмысле основа то все равно остается 1С:Предприятие..)
А что тогда понимается под языком программирования? А при чём тут 1с? Да ни при чём, так же как и .NET, кстати. И ещё, забыл сказать, что за 1с деньги платят гораздо чаще чем за всё остальное вместе взятое

Лех, давай, нахренач Фибоначи на 1с, у нас еще минут 20 до конца рабочего дня - давай чего-нибудь угробим....
Записан
NeO
Злобный админчик
Администратор
*****

Карма: 62
Сообщений: 2376

Debian Stretch


WWW Награды
« Ответ #41 : 04 Марта 2008, 17:29:29 »

kaigerda, а причем тут wine и 1C ?? Помоему это вобще не язык программирования как таковой, а просто средство разработки узкоспециализированных программ (всмысле основа то все равно остается 1С:Предприятие..)
А что тогда понимается под языком программирования? А при чём тут 1с? Да ни при чём, так же как и .NET, кстати. И ещё, забыл сказать, что за 1с деньги платят гораздо чаще чем за всё остальное вместе взятое
Да, все богатейшие софтверные компании занимаются исключительно 1С Смеющийся
Записан
PPA
Юзверь
**

Карма: 4
Сообщений: 80


WWW Награды
« Ответ #42 : 04 Марта 2008, 19:03:40 »

Цитировать
Сорри, надо больше спать. Осознал свою ошибку, покурил MSDN по query, но так и не проникся величием :/ Нафиг оно надо?
Ты напиши тоже самое на C++ потом поймёшь нафига оно.

А зачем подобное писать на С++?

Записан

--
~PPA() {} //
AleksK
Продвинутый
***

Карма: 2
Сообщений: 220


WinXP, Russian Fedora 10.1


Награды
« Ответ #43 : 04 Марта 2008, 23:29:40 »

Цитировать
А зачем подобное писать на С++?
Потому что это будет немного сложнее чем на C#.

И не надо наезжать на 1С, если подходить грамотно то это очень хорошая платформа для бизнес решений. А ещё это неплохой способ заработать. За счёт 1С в России живут тысячи программистов, в том числе и я Улыбка
« Последнее редактирование: 04 Марта 2008, 23:34:32 от AleksK » Записан
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #44 : 05 Марта 2008, 13:56:05 »



Продолжим, python:

#! /usr/bin/python2.5
import time
def fib(n) :
    if n==0:
   return 0
    elif n==1:
   return 1
    else:
        return(fib(n-1)+fib(n-2))
   

time_begin=time.clock()
the_end_count=36
print fib(the_end_count)
time_end=time.clock()
real_time=time_end-time_begin
print "Total time \[s\]: ",real_time


Результат:
14930352
Total time \[s\]:  26.76

На 46 я не дождался....
Машинка та же

P.S. Щас товарищ еще запостит реализацию на 1с  Улыбка
« Последнее редактирование: 05 Марта 2008, 14:08:35 от mini_root » Записан
Страниц: 1 2 [3] 4 5 6   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM