LINUX.ORG.RU

Тогда большой разницы нет. Я бы выбрал Python.

tailgunner ★★★★★
()

А какой прошлый опыт разработки, на чем? В зависимости от прошлого опыта, и сложности будующих проектов стоит выбирать из Django или RoR как платформы для разработки. Вопрос языка вторичен. Пробегись хотя бы по туториалам и чисто визуально по первым ощущением составь представление что для тебе больше на вкус.

BigAlex ★★★
()

Зачем спрашивать. Тут сейчас всякой гадости понасоветуют. Какой язык знаете, на таком и пишите. Я, например, на С пишу, и мне ничего другого не надо. Вам если питон нравится - пишите на нем, если же лучше знаете руби - на руби.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от ss-v

> Разочаровался в CL? :)

Ну не мог же я так сразу CL предложить ;)

archimag ★★★
()

>фреймворками пользоваться не буду(очень маленький проект).

а поподробнее?

anonymous
()

Вообще, я всегда пользовался питоном и шелом для своих нужд, но не совсем являюсь его фанатом. В поседнее время всё чаще и чаще встречаю проекты на руби, может просто совпадение. Проект будет не большой, там всё будет на CGI, скорость совсем не нужна. Но если не лукавить, то вообще стоит юзать руби в качестве замены шелу, питону? Может кто-то наоброт пересел с руби на питон, а может с питона на руби. Хотелось бы услышать плюсы и минусы.

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

> Так если вам скорость не нужна, почему бы вообще на баше не писать CGI?

Просто наверное автор не мазохист.

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

а, ясно. типичный-троллотред. слабовато как-то.

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

Я маленькие CGI наподобие этого

#!/bin/sh
echo -e "Content-type: text/html; charset=koi8-r\n"
echo "<html><meta http-equiv='Content-Type' content='text/html; charset=koi8-r'>"
echo "<link rel='stylesheet' href='/style.css' type='text/css'>"
echo "<meta http-equiv='refresh' content=1>" 
echo "<body>"
echo "<h1>Тест</h1><pre>"
cat /var/www/tmp/fifo-out
echo "</pre></body></html>"
мазохизмом не считаю.

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

Да, в своем первом проекте, где часть логики была вынесена в веб, я тоже использовал подобные cgi-скрипты и думал, что это удобно и достаточно. Потом, когда всё проклиная переписывал на python, этот урок хорошо запомнил ;)

archimag ★★★
()

Jetty & JSP в блокнотике.

Для маленьких проектов, которые со временем превращаются в большие и их нужно будет потом поддерживать в больших средах.

Великолепная масштабируемость достигается при выборе правильной архитектуры с самого начала.

iZEN ★★★★★
()

Я знаю python, я бы выбрал python. Тем более, что у рубя репутация страшного тормоза. Хотя, они примерно одну нишу занимают и примерно одной идеологией обладают, так что разница между ними не такая уж и принципиальная.

А что же до «перешел от одного к другому», то достоверно известно, что twitter перешел с Ruby на Scala. =)

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

врядли ты все правильно спроектируешь с самого начала. хотя бы потому, что львиная доля требований появится потом.

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

> Я уже давно все скрипты переписал на С

Вы из своей пещеры вылазки делать не пробовали?

anonymous
()

Ruby + Rack

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

Вы из своей пещеры вылазки делать не пробовали?

Это вы к чему? Каждый выбирает для программирования тот язык, который ему нравится, и который он знает.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от nesusvet

Писал и пишу на руби. Однако для некоторых задач иногда использую питон. Особой разницы между ними нету, просто для питона есть несколько интересных для меня либ - Tornado например. А руби мне нравится однородной объектной моделью и наркоманским сообществом.

Конкрентно для твоей задачи я бы заюзал Sinatra, это для руби.

dizza ★★★★★
()

Python

фреймворками пользоваться не буду(очень маленький проект).

Бери web.py, это хоть и фреймворк, но размеры у него очень маленькие. Зато всяко приятнее чем городить велосипед на питоне + cgi (лично проверял).

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

Ладно, маленький примерчик. Как это реализовать не на С?

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#define CHALLOC(x)	(char *)malloc(x)

char *tmp_file, *buf, *file, *file_dest, *str, *curDir, *str1;
int f_tmp = 0, f_file = 0, tail_length = 0, fsize = 0;

void printerr(char *err, int errno){
	printf("<script language=JavaScript>function notify(){parent.Loaded(\"%s!\");}</script></head><body onLoad=\"notify();\">\n%s</body></html>\n", err, err);
	if(f_tmp > 0){
		close(f_tmp);
	}
	if(f_file > 0 && errno){
		close(f_file);
		unlink(file_dest);
	}
	free(tmp_file); free(buf); free(file); free(file_dest); free(curDir);
	exit(errno);	
}

void unhexdump(char *inp){
	char tmp[512], *o_ptr = inp, *tok;
	unsigned char ch;
	unsigned int a;
	strncpy(tmp, inp, 512);
	tok = strtok(tmp, "%");
	do{
		sscanf(tok, "%x", &a);
		ch = a;
		*o_ptr++ = ch;
	}while(tok = strtok(NULL, "%"));
	*o_ptr = 0;
}

int get_param(char *qs, char *param, char *meaning, int l){
	char *tok, *val, *par, str[2048];
	int stat = 0;
	strncpy(str, qs, l);
	if(par = strstr(str, param)){
		if(val = strchr(par, '=')){
			val+=2;
			stat = 1;
			par = strchr(val, '"');
			*par = 0;
			strncpy(meaning, val, l);
		}
	}
	return stat;
}

void remove_spaces(char *name){
	char *ptr = name;
	while(ptr = strchr(ptr, ' '))
		*ptr++ = '_';
}

int main(){
	int n, i;
	tmp_file=CHALLOC(512); file=CHALLOC(512); file_dest=CHALLOC(1024); curDir=CHALLOC(512);
	buf=CHALLOC(16384);
	printf("Content-type: text/html\n\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=koi8-r\">\n<html><head>\n");
	sprintf(tmp_file, "/var/www/tmp/newfile_XXXXXX");
	mkstemp(tmp_file);
	if( (f_tmp = open(tmp_file, O_RDWR|O_CREAT)) == -1)
		printerr("can't write temporary file", 1);
	chmod(tmp_file, 00666);
	unlink(tmp_file);
	n = read(0, buf, 16384);
	if(n <= 2)
		printerr("no query string", 10);
	if(!get_param(buf, "filename", file, 512))
		printerr("can't determine filename", 2);
	get_param(buf, "name", curDir, 512);
	str = curDir;
	unhexdump(str);
	if(strchr(file, ' ')) remove_spaces(file);
	str1 = strstr(str, "/Inc/");
	if(str1){
		str1 += 5;
		if(strlen(str1) > 1)
			sprintf(file_dest, "/var/www/tmp/Incoming/%s/%s", str1, file);
		else
			sprintf(file_dest, "/var/www/tmp/Incoming/%s", file);
	}
	else
		sprintf(file_dest, "/var/www/tmp/Incoming/%s", file);
	str = buf;
	for(i=0; i<4; i++){ // пропускаем первые четыре строки (заголовок)
		str = strstr(str, "\r");
		if(!str) break;
		if(i == 0) tail_length = str - buf + 6; // длина хвоста
		str++;
	}
	if(!str)
		printerr("stream header damaged", 3);
	str++; // пропускаем \n
	i = n - (str - buf); // длина оставшихся данных
	write(f_tmp, str, i);
	while(n = read(0, buf, 16384))
		write(f_tmp, buf, n);
	fsize = lseek(f_tmp, -tail_length, SEEK_END); // получаем искомый размер файла
	lseek(f_tmp, 0, SEEK_SET);
	if( (f_file = open(file_dest, O_RDWR|O_CREAT)) == -1)
		printerr("can't save file", 4);
	chmod(file_dest, 00666);
	while(n = read(f_tmp, buf, 16384)){
		if(n > fsize) n = fsize;
		write(f_file, buf, n);
		fsize -= n;
	}
	printerr("", 0);
}

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

> Ладно, маленький примерчик. Как это реализовать не на С

Я не сомневаюсь в моще С, хотя код С++ с использованием ACE смотрелся бы куда как мощьнее.)

Но в данном случае учитывая сколько код с подобным функционалом займет на бопее приспособленных для этого языках, «маленький примерчик» больше смахивает на ССЗБ!)

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

> Как это реализовать не на С

Объясни (не могу побороть в себе привычку парсить чужой код только за деньги ;) что там делается такого эксклюзивного.

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

что там делается такого эксклюзивного.

Ничего эксклюзивного (пример, конечно, неудачный - зато короткий) - простая загрузка файла на сервер (с предварительным декодированием имени файла, т.к. оно может быть на кириллице). Знаю, на каком-нибудь пыхпыхе то же самое реализуется в несколько раз меньшим количеством строк. Но мне нравится С. И я его использую.

Ну а про эксклюзивность: сейчас «пилю» веб-морду для обслуживания кое-какого оборудования, нужно будет одним потоком брать видеосигнал с фреймграббера, другим - управлять по RS-232 железяками, отдельным процессом - отсылать видео, ну и в случае вызова CGI с определенными параметрами - менять значение mmap'нутых переменных. Здесь без С вообще не обойтись, и код для работы с http запросами/ответами составляет от силы процента 2 от объема всего кода.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от archimag

Обоснуй.

А как вы себе представляете без использования С работу с сисвызовами v4l2, RS-232; математическими пакетами gsl (вейвлет-преобразования), fftw3 (Фурье для свертки), q-sort (медианная фильтрация) ???

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от archimag

>> Здесь без С вообще не обойтись

Обоснуй.

Он как бы уже сказал, что поспешил с выводами ;^) «Знаю, на каком-нибудь пыхпыхе то же самое реализуется в несколько раз меньшим количеством строк.»

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

> JavaScript, bash.

То есть ничего серверсайдного.

И вообще, я не программист :)

Это я уже понял. Физик, вероятно? У них часто подход к программированию, как к эксперименту.

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

>> JavaScript, bash.

Мне больше ничего и не надо. И вообще, я не программист :)

Ого у нас уже аминов напрягают «С работу с сисвызовами v4l2, RS-232; математическими пакетами gsl (вейвлет-преобразования), fftw3 (Фурье для свертки), q-sort (медианная фильтрация)»

Скоко те платят, как не программеру за всё это? ;^)

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

Физик, вероятно?

Да, астрофизик.

Скоко те платят, как не программеру за всё это?

Оклад ~14тыс.р. + 5-10 тыс. по контракту. Вполне прилично по нашим меркам.

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

> Оклад ~14тыс.р. + 5-10 тыс. по контракту. Вполне прилично по нашим меркам.

Ты в каком городе живешь?
Хотел бы я жить в этом городе («Вполне прилично по нашим меркам.»), правда получая, то что получаю в дефаулт сити!)

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

> То есть ничего серверсайдного

javascript вполне успешно применяется на стороне сервера, например, в ASP или node.js. Также встречались проекты, где бэкенд на Java, а фронтенд на javascript (в Java есть поддержка javascript).

anonymous
()

> фреймворками пользоваться не буду

это большая, ну очень большая ошибка.

пс. голосую за пайтон.

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

> javascript вполне успешно применяется на стороне сервера

Как ни странно, я знаю. Но, насколько я могу судить (я далек от вебели), на серверсайд он применяется довольно редко. Вон, даже Си применяют :)

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

Ты в каком городе живешь?

Профиль посмотреть не судьба?

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

> А как вы себе представляете без использования С работу с сисвызовами v4l2, RS-232; математическими пакетами gsl (вейвлет-преобразования), fftw3 (Фурье для свертки), q-sort (медианная фильтрация) ???

Через cffi вестимо, практически наверняка биндинги ко всему этому будут в python/ruby/php/CL.

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