Какой язык сценариев поддерживать в существующей кодовой базе?

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

Я попытался связать их вместе, чтобы принести полностью портативное и многозначное решение ... Фокус в том, чтобы использовать для автоматического масштабирования изображения, но вместо этого использовать встроенный элемент svg использования предварительно обработанного изображения или любой формы второго HTTP-запроса ...

div.holder{
  background-color:red;
  display:inline-block;
  height:100px;
  width:400px;
}
svg, img{
  background-color:blue;
  display:block;
  height:auto;
  width:auto;
  max-width:100%;
  max-height:100%;
}
.content_sizer{
  position:relative;
  display:inline-block;
  height:100%;
}
.content{
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  right:0;
  background-color:rgba(155,255,0,0.5);
}
<div class="holder">
  <div class="content_sizer">
    <svg width=10000 height=5000 />
    <div class="content">
    </div>
  </div>
</div>

Обратите внимание, что я использовал большой значения в атрибутах ширины и высоты SVG, так как он должен быть больше максимального ожидаемого размера, поскольку он может только уменьшаться. Пример делает соотношение div 10: 5

6
задан GEOCHET 23 February 2009 в 23:44
поделиться

9 ответов

На основе моего собственного опыта:

  • Python. По моему скромному мнению, это - хороший выбор. У нас есть довольно большая кодовая база с большим количеством пользователей, и им нравится она много.
  • Ruby. Существуют некоторые действительно хорошие приложения, такие как Google Sketchup, которые используют это. Я записал плагин Sketchup и думал, что это было довольно хорошо.
  • Tcl. Это - олдскульный встраиваемый предпочтительный язык сценариев, но он не имеет большого импульса в эти дни. Это высококачественно, хотя, они используют его на Космическом телескопе Хабблa!
  • Lua. Я только сделал детские товары с ним, но IIRC, это только имеет числовой тип с плавающей точкой, поэтому удостоверьтесь, что это не проблема для данных, с которыми Вы будете работать.

Нам посчастливилось жить в Золотой Век сценариев, таким образом, трудно сделать плохой выбор, если Вы выбираете из какого-либо из популярных.

3
ответ дан 16 December 2019 в 21:49
поделиться

Я играл вокруг немного с Spidermonkey. Кажется, что это, по крайней мере, было бы достойное внимания в в Вашей ситуации. Я услышал хорошие вещи о Lua также. Большой аргумент в пользу использования языка сценариев JavaScript - то, что много разработчиков уже знает это и вероятно было бы более удобным с самого начала, тогда как Lua, скорее всего, будет иметь определенную кривую обучения.

Я не абсолютно положителен, но я думаю что spidermonkey Ваши 4 требования.

1
ответ дан 16 December 2019 в 21:49
поделиться

Lua, имеет самый простой API C для привязки в кодовую базу, которую я когда-либо использовал. На самом деле я обычно быстро прокручиваю привязку для него вручную. Принимая во внимание, что, Вы часто не рассматривали бы выполнение так без генератора как большой глоток для других. Кроме того, это обычно быстрее и больше легкого веса, чем альтернативы, и сопрограммы являются очень полезной функцией, которую обеспечивают немного других языков.

1
ответ дан 16 December 2019 в 21:49
поделиться

Я использовал Python экстенсивно с этой целью и никогда не сожалел о нем.

1
ответ дан 16 December 2019 в 21:49
поделиться

Исходный вопрос описал Tcl к "T".

Tcl был разработан с начала быть встроенным языком сценариев. Это развилось, чтобы быть первым классом динамический язык самостоятельно, но все еще используется во всем мире в качестве встроенного языка. Это доступно в соответствии с лицензией BSD, таким образом, это примерно столь свободно, как это добирается. Это также компилирует на в значительной степени любой moden платформе и многих not-so-modern. И мало того, что это работает над настольными системами, существуют изменения, доступные для мобильных платформ.

Tcl выделяется как язык "связующего звена", где Вы можете интенсивные производительностью записи функции в C при тихой пользе из преимуществ языка сценариев для меньшего количества производительности критическим частям приложения.

Tcl также идет с первым классом инструментарий GUI (Tk), который является возможно одним из самых легких кросс-платформенных доступных инструментариев GUI. Это также взаимодействует через интерфейс очень приятно с SQLite и другими базами данных, и имело встроенную поддержку unicode в течение достаточно долгого времени.

Если интерфейс сценариев будет сделан доступным для Ваших клиентов (в противоположность простому тому, чтобы позволять Ваших собственных инженеров работать на уровне сценариев), Tcl чрезвычайно легко изучить, поскольку существует в общей сложности только 12 правил, которые управляют всем языком (с tcl 8.6). На самом деле Tcl сияет как способ изобрести предметно-ориентированные языки, который часто является, как он используется в качестве конечного пользователя, пишущего сценарий решения.

1
ответ дан 16 December 2019 в 21:49
поделиться

AngelScript

позволяет Вам назвать стандарт C функциями и методами C++ без потребности в функциях прокси. Приложение просто регистрирует функции, объекты и методы, с которыми сценарии должны смочь работать, и ничто больше не должно быть сделано с Вашим кодом. Те же функции, используемые приложением внутренне, могут также использоваться механизмом выполнения сценариев, который избавляет от необходимости копировать функциональность.

Для устройства записи сценария язык сценариев следует за широко известным синтаксисом C/C++ (с незначительными изменениями), но без потребности волноваться об указателях и утечках памяти.

1
ответ дан 16 December 2019 в 21:49
поделиться

Уже были некоторые превосходные предложения, но я просто хотел упомянуть, что Perl можно также назвать / может звонить в C/C++.

0
ответ дан 16 December 2019 в 21:49
поделиться

Вы, вероятно, могли использовать любые современные сценарии / язык байт-кода.

Если Вы готовы выносить болезнь роста нового продукта, Вы могли бы использовать Попугая VM. Который имеет поддержку многих, если не все языки перечислили на этой странице. К сожалению, это еще не сделано, но это не мешало некоторым людям использовать его в продуктивной среде.

0
ответ дан 16 December 2019 в 21:49
поделиться

Я думаю, что большинство людей, вероятно, упоминает язык сценариев, с которым они являются самыми знакомыми. С моей точки зрения Tcl был специально разработан для взаимодействия через интерфейс с C, таким образом, проблемная область нестандартна для языка. Однако я уверен Python, Perl, или Lua был бы прекрасен. Необходимо, вероятно, выбрать язык, который является самым знакомым текущей команде, так как это уменьшит время изучения.

0
ответ дан 16 December 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: