Lasso(プログラミング言語)

ラッソ
パラダイムマルチパラダイム構造化オブジェクト指向マルチパラダイム)、

命令型手続き型並行型経験的指向型

メタ反射的
デザイン:カイル・ジェサップ
開発者ラッソソフト株式会社
初登場1995 (1995年
安定版リリース
9.3.1 / 2015年10月23日 (2015年10月23日
タイピングの規律制約付き動詞(厳密ハイブリッド)、主格アヒル(ハイブリッド)
実装言語C、ラッソ
プラットフォームクロスプラットフォーム
OS( OS XWindowsLinux )
ライセンス独自の
ファイル名拡張子.lasso、.LassoApp
Webサイトwww.lassosoft.com
主要な実装
ラッソ 8、ラッソ 9
影響を受けた
DylanSmalltalkScala

Lassoは、インターネットアプリケーション開発用に設計されたアプリケーションサーバーおよびサーバー管理インターフェースです。また、汎用性の高い高水準プログラミング言語でもあります。元々はFileMaker用のWebデータソース接続ツール[ 1 ]でしたが、後にApple ComputerのFileMaker 4.0およびClaris HomepageにCDMLとして組み込まれ[ 2 ] 、 [ 3 ]、その後、大規模なインターネットアプリケーションやWebページの開発と提供に使用される複雑な言語へと進化しました。

Lassoには、 HTMLやその他のコンテンツタイプの生成をコードで制御できるシンプルなテンプレートシステムが含まれています。Lassoは、すべての値がオブジェクトであるオブジェクト指向プログラミング言語です。また、非束縛メソッドによる手続き型プログラミングもサポートしています。この言語では、特性多重ディスパッチが広く使用されています。

Lasso には、実行時にオブジェクトをロードして拡張できる動的型システム、自動メモリ管理、包括的な標準ライブラリ、および 3 つのコンパイル手法(動的( PHP - Pythonに相当)、ジャストインタイムコンパイル( Javaまたは.NET Frameworkに相当)、およびプリコンパイル ( Cに相当)) があります。Lasso はクエリ式もサポートしており[ 4 ] 、配列やその他のシーケンス型内の要素をSQLに似た自然言語構文を使用して反復、フィルタリング、および操作できます[ 5 ]。Lassoは標準の文字列オブジェクトに完全なUnicode文字サポート を含めており、日本語やスウェーデン語などのマルチバイト文字を提供およびサポートできるほか、文字列データをネットワークまたはファイルシステムに書き込むときに 透過的なUTF-8変換をサポートします。

Lassoはスクリプト言語としてよく使われますが、スクリプト以外の幅広いコンテキストでも使用されています。Lassoコードは、「LassoApps」と呼ばれるスタンドアロンの実行可能プログラムにパッケージ化することができ、フォルダ構造は単一のファイルにコンパイルされます。[ 6 ]

Lasso Server アプリケーションサーバーはシステムサービスとして動作し、FastCGIを介してWeb サーバーからのリクエストを受け取ります。その後、リクエストは適切な Lasso インスタンスに渡され、インスタンスはレスポンスを作成します。複数のインスタンスをサポートしているため、1 台のサーバーで複数のサイトをそれぞれ個別のプロセスとして処理できます。サーバーは、マルチコアシステム向けに設計された高性能IOベースのグリーンスレッドシステムを採用しています。

Lassoは、サーバーサイドのスクリプト言語であるPHP [ 7 ] [ 8 ]PythonColdFusionRubyなどと比較することができます。 [ 9 ] [ 10 ]

歴史

Lassoは1990年代半ば、初期のWeb開発者がAppleのFileMaker Proを使ってデータベースベースのWebサイトを構築しようとしていた頃に誕生しました。Macプラットフォームには、Eric Bickford氏のWEB-FMとRussell Owens氏のFileMaker CGI (ROFM)という2つのソリューションがありました。どちらもAppleScriptで構築されており、書式設定にはFileMaker Proの計算フィールドを使用する必要がありました。(WEB-FMは後にC言語で書き直されました。)

1995年秋、独立系開発者のヴィンス・ボンファンティは、ROFMをベースにした新しいCGIを開発しました。パフォーマンス向上のためC / C++を使用し、計算フィールドではなくHTMLベースの「テンプレート」という概念を採用しました。これはFileMakerコミュニティで非常に好評を博し、ワシントン州イサクアに拠点を置く印刷・ウェブサイト開発会社Blue World Communications Inc.のオーナーであるビル・ドーフェルドの目に留まり、彼はソースコードを購入しました。[ 11 ]

当時、Blue World社はFrontierスクリプト環境のCGIの改良を試みており、これが「Lasso」という名前につながりました。さらなる改良の必要性から、C言語ベースのCGIが開発され、後に「Lasso 1.0」としてリリースされました。この時点では、LassoはFileMaker Pro 3.xとWebSTARでのみ動作し、Apple Mac OS 8以降でのみ動作していました。[ 12 ]

Lassoの利用は、印刷物のレビュー[ 13 ]や、Blue World社が主催・参加した多くの電子メールディスカッションリスト(その多くはFileMaker Proに特化していた)によって著しく増加した。Blue World社はMacWorldカンファレンスにも頻繁に参加し、リーディングカンパニーとして知られていた[ 14 ]

1997年1月にLasso 1.2ラインナップがリリースされた後、ブルーワールドとボンファンティ夫妻は、アップルコンピュータのソフトウェア部門でありFileMaker Proの所有者であるクラリス社と非公開の交渉に入った。クラリス社は最終的にバージョン1.2以降のLassoのソースコードのライセンスを取得し、ヴィンスとポール・ボンファンティの協力を得て、FileMaker Pro 4.0のコンポーネントとしてFileMaker Webコンパニオンをリリースした。FileMaker Webコンパニオンの言語であるCDML(Claris Dynamic Markup Language)[ 15 ]は、 Lasso 1.2のLDML(Lasso Dynamic Markup Language)とは異なっていたが、FileMaker Proからサードパーティのサーバーを介してサービスを提供したいと考えている開発者にとって移行が容易な程度には似ており[ 16 ]、より魅力的な機能を提供していた。[ 17 ]

FileMaker 4.0にLassoに似たWebコンパニオンが追加されたことも、Macintosh Web開発コミュニティにおけるLassoの成長を刺激しました。Blue World社はLassoの開発を継続し、Kyle JessupがLassoのリードプログラマーに就任しました。1997年7月にはLasso 2.0がリリースされ、Lassoの使い方に根本的な変化をもたらしました。[ 18 ]

2002年2月26日、Blue World社はLasso 5をリリースしました。これは、これまでのFileMaker中心の言語から大きく転換するものでした(Lasso 4はリリースされず、バージョン番号は3から5に飛びました)。Lasso 5には、多くのアップデートに加え、アーキテクチャが完全に書き直されました(OS X、Windows、Linux用)。また、MySQLデータベースが組み込まれていました。[ 19 ] Lasso 5はFileMakerデータベース(FileMaker Serverではない)と通信していましたが、データソースとしてのFileMakerはSQLエンジンに比べて依然として比較的遅く、非常に高価でした。バージョン2.0以降、Lassoは完全にマルチスレッド化され、一度に多数の接続が可能になりましたが、特定の操作でFileMakerの遅延やラグの影響を受け、データソースに大幅な変更を加える以外に確実な回避策はありませんでした。[ 20 ]

Lasso 5では、Webstar 5、AppleShare IP(OS X Serverに置き換えられた)、iTools(Tenon [ 21 ]製)に加えて、 OS X、WindowsLinux上でApache HTTP Serverのネイティブサポートも追加されました。(Lassoが長年使用されてきたMac OS 9はサポートされていませんでした。)これにより、従来のLAMPサーバーアーキテクチャとの結びつきが強まりました。

ブルーワールドコミュニケーションズは、マクロメディアとアドビの人気のウェブ開発パッケージ用のプラグインシリーズをリリースしました。Dreamweaver用のLasso Studio 1.5は、2001年にMacWorld誌のインターネットと開発部門のエディターズチョイスアワードでAdobe Dreamweaver 3に敗れ、準優勝しました[ 22 ] 。Dreamweaver用のLasso Studio 1.5 [ 23 ]もMacWorld誌で好評を博し、4つ星を獲得しました。+12マウス。Lasso Studioの後のバージョンは、 Macromedia DreamweaverAdobe GoLiveの両方をサポートし、2004年3月26日にはDreamweaverとGoLive用のLasso Studio 7がリリースされた[ 24 ]

2004年にFileMaker ServerとFileMaker Server Advancedバージョン7をリリースしたことで、FileMakerはWebサイトへのデータ提供戦略に大きな転換を示しました。XML-XSLT、ODBC、JDBC接続を重視しましたが、これらはより高価なFileMaker Server Advanced製品を通じてのみ提供されました。[ 25 ] Blue WorldはLasso言語をFileMakerとAppleから遠ざけ始めました。2005年、Lasso ProはMySQL Network認証を取得しました[ 26 ]。これは、この人気のオープンソースデータベースがLassoの将来にとって重要であることを示しています。

2004年8月1日、ビル・ドーフェルドはフロリダ州フォートローダーデールのオムニパイロット・ソフトウェア社にLasso製品ラインを正式に売却しました。Lasso 7.0.3はBlue World社がリリースしたLassoの最終バージョンでした。[ 27 ]

2004年10月25日、OmniPilotはLasso 8のリリースを正式に発表しました。このバージョンでは、同一サーバー上の複数のサイトに対するサンドボックス化と、多くの新しいデータソースへの接続が可能になりました。[ 28 ]また、IPアドレスに制限されたLassoの最初の「無料」バージョンも含まれていました。[ 29 ] OmniPilotはこのリリースに続き、DreamweaverとGoLive用のLasso Studio 8 [ 30 ] 、 Eclipse用のLasso Studio 、ChartFXとの統合、そしてLassoベースの無料ソリューションなど、多くの補完的な製品を発表しました。[ 31 ]

2007年、OmniPilotの従業員3人、Kyle Jessup(Lasso 1.0のオリジナル開発者)、Fletcher Sandbeck(Blue Worldの初期従業員で、Tips and Tricksを定期的に投稿していた)、Kerry Adams(OmniPilotの従業員)が、OmniPilotからLassoの知的財産を購入し、開発を継続するために、新しい会社LassoSoft LLCを設立しました。[ 32 ] [ 33 ] PHPやASPなどのより人気の高い言語との競争の必要性を認識し、アーキテクチャ、構文、構造に根本的な変更を加え、Lasso 9.0としてリリースしました。これらの変更によって生じた技術的な課題と限られたマーケティングリソースが相まって、会社が新しい言語のドキュメントとサポートをリリースするのに苦労する中で、コミュニティの著しい衰退につながりました。[ 34 ] [ 35 ]

2010年12月、カナダに新会社LassoSoft Inc.が設立され、同社はLasso 9.0の言語、マーケティング、ドキュメント開発に多額の投資を行いました。Kyle JessupはLassoの主任開発者兼終身独裁者として留任することに同意しました。近年、9.1および9.2のリリースでさらなる開発が進められています。[ 36 ]

リリース履歴

意味 発達
古いリリース 開発なし
黄色 安定版リリース セキュリティ修正
安定版リリース バグとセキュリティの修正
今後のリリース 新機能
バージョン 発売日 注記
ROFM>1994年3月14日ラッセル・オーウェンズのFileMaker CGI、FileMaker Proデータベース用の初期のAppleScriptベースのコネクタ
0.11995年9月FileMaker Pro を Web に接続するために Vince Bonafonti が C/C++ で作成した CGI コネクタ
1.01996年9月27日FileMaker Pro 3.xおよびWebSTAR用コネクタ[ 37 ] [ 38 ]
1.11996年12月WebSTARプラグイン、クライアントブラウザ情報、完全なGUIセキュリティ層[ 39 ]
1.21997年1月Claris (Apple Computer Inc) にライセンス供与されたソースコード (CDML という名前) が Claris ホームページにインストールされています
21997年7月17日数学的計算、変数、複雑なデータ型、サーバーサイドインクルード、クライアントヘッダー情報、高度な条件文、Javaクライアントインターフェース、Webサーバー上の他のアプリケーションのためのAppleイベントコントロール、複数のデータベースアクション、インスタントWebパブリッシング[ 40 ]が含まれています。
2.51997年12月1日タグの標準化と相互運用性、 WebTenウェブサーバー(Tenon IntersystemsによるApache HTTP ServerのMac OSへの移植)との通信機能の追加[ 41 ]
3.01998年10月7日データ検証フィルタ、マクロ、ファイル/ディレクトリ管理、日付/時刻コントロール、リスト変数、複数の名前付きトークン、堅牢なエラー処理、MIME電子メール、電子メール添付ファイル、拡張された数学ルーチン、強化された文字列関数、強化されたエンコードコントロールが追加されました[ 42 ]
3.51999年4月14日Macromedia Dreamweaver 2とAdobe GoLive 4を使用したWYSIWYGオーサリング、マルチスレッド、LJAPI、オプションのHTTPサーバー、Netscapeサーバーのサポート、JavaScript、XML、および組み込みのデバッグコントロールを備えた高度なタグパーサーを追加[ 43 ]
3.62000年1月5日FileMaker 5データソース、対話型SQLクエリ用のSQLウィザード、カスタマイズ可能なグローバルエラーページ、MacroMedia DreamWeaver Studioのサポート[ 44 ]
3.6.52000年10月1日MySQL、Red Hat、OS Xサポート用のコネクタを追加[ 45 ]
52002年2月26日OS X、Windows、Linux向けにアーキテクチャを書き直し、MySQLを組み込み、セッション、ファイル操作、Apacheのネイティブコネクタ、LassoScript(言語に「スクリプト」手法を追加)を追加した。[ 46 ]
62002年9月17日画像処理、PDF操作、ネイティブXML、FTP統合、日付計算、期間の追加[ 47 ]
72004年8月30日MySQLは外部化(ライセンスのため)、FileMakerはコネクタをクローズ
7.12004年9月13日Filemaker Pro 7との互換性を追加[ 48 ]
82004年10月25日Lasso Serverはホスティングプロバイダ向けに個別の「サイト」に分割されています
8.12005年9月19日ドキュメントキャッシュの追加、安定性の修正[ 49 ]
8.52006年6月9日完全なAJAX統合を追加し、FileMaker、FileMaker Server Advanced、MySQL、SQLite、MS SQL Server、Sybase、Oracle、PostgreSQL、OpenBase、ODBC、AppleのSpotlightエンジン用の複数のデータソースコネクタがプリインストールされました[ 50 ]
92010年1月29日主要なアーキテクチャの変更:より多くの構文、強い型付けと弱い型付け、JITコンパイル、ネイティブシリアル化、64ビットサポート[ 51 ]
8.62011年4月20日速度と安定性の向上[ 52 ]
9.12011年7月11日新しい管理インターフェース、64ビットコネクタ、新しいSASライセンス[ 53 ]
9.22012年6月1日Windowsサポートの追加、統合デバッグ、統合コードプロファイリング[ 54 ]
9.32015年1月23日新しい管理インターフェース、新しいコンパイル方法、集中型サーバー展開[ 55 ]

コード例

こんにちは世界

Lasso ページで「Hello world!」と言う方法は 3 つあります。

<?lasso 'Hello World!' ?>[ 'こんにちは世界!' ]こんにちは世界!

角括弧はLassoで予約語となっているため、Lassoタグをマークする以外の目的でLassoページに角括弧を表示するには、HTMLエンティティを使用する必要があります。角括弧の表示はLassoによって制御されるか、ファイル先頭に[no_square_brackets]を含めることで無効にできます。

インライン

// テーブル内のすべてのレコードをインラインで検索します( -database = 'db_name' -table = 'table_name' -findall ) => { // 各行を反復処理して処理しますrows => { // 各行を現在の Web リクエストに出力しますcontent_body += ' <a href="' + column ( 'url' ) + '"> ' + column ( 'title' ) + '</a>' } }

インラインは、データベース操作のためのLassoの基本的なツールです。データベースコマンドは、上記のようにLassoのデータベースに依存しないメタ言語で発行できます。この場合、同じ検索コードはMySQL、FileMaker Pro、またはLassoが接続できるその他のデータベースバックエンドでも機能します。

もちろん、必要に応じて、 SQL をサポートするデータベース サーバーを使用する場合は、 SQLステートメントをインラインに埋め込むことができます。

// SQL ステートメントをインラインで実行します( -database = 'db_name' -sql = 'SELECT * FROM table_name' ) ...

上記の例では、コマンドの前のダッシュ(-)はオプションのパラメータを表します。これらのパラメータは任意の順序で指定でき、動的に生成されます。重複したパラメータがある場合は、最後に指定されたパラメータが優先されます。インラインコマンドは幅広いパラメータをサポートしているため[ 56 ]、開発者はデータベースに関する知識が不足している場合でも、データベースと対話することができます。

インライン コマンドの抽象化された性質を活用できるカスタム データベース コネクタを作成できます。

ビール99本

次の手続き型の例では、「99 Bottles of Beer」という曲の歌詞を出力します。

// 便利なメソッドをいくつか定義するbrを定義=> '<br/>'、ボトルを定義( n :: integer ) => #n != 1 ? 'ボトル' | 'ボトル'// 歌詞を文字列として保存するローカルを宣言するローカル(出力= '' )// Lassoクエリ構文を使用して歌詞を生成しますn99から1まで- 1割った値{#out += #n +( #n ) + ' 本のビールが壁にかかっています、' + br #out += #n +( #n ) + ' 本のビール、' + br #n -- #out += '1 本取って回し、' + br #out += #n +( #n ) + ' 本のビールが壁にかかっています。' + ( br * 2 ) }// 出力結果#外

次の例では、オブジェクトが文字列として表現されているときに、OOP アプローチを使用して歌詞を出力します。

// 型を定義するdefine bottles_of_beer => type {// 内部データを定義するdata private bottles = 99// プライベートメソッドを定義するprivate br => '<br/>' private s => . bottles != 1 ? 's' | '' // オブジェクトが文字列として表現されている場合に歌詞を生成するpublic asstring => {local ( out = '' ) // Lassoクエリ構文を使用して歌詞を生成しますn991- 1の場合、次のコードを実行します{ . bottles = #n #out += . bottles + ' ボトル' + . s + ' ビールが壁にかかっています。 ' + . br #out += . bottles + ' ボトル' + . s + ' ビール; ' + . br . bottles -- #out += '1 つ取って回し、' + . br #out += . bottles + ' ボトル' + . s + ' ビールが壁にかかっています。' + ( . br * 2 ) }// 結果を返すreturn #out } }ビール瓶

開発ツール、環境

  • ラッソラボ
  • Eclipse用 Lasso Studio
  • Codaの Lasso 言語モード
  • BBEdit用 Lasso 言語モジュール

参考文献

  1. ^ Dave, Parkhurst (1997年4月25日)、「新しいWebツールがサーバのレガシーデータへのリンクを支援」、MacWEEK Magazine
  2. ^ 「Filemaker Pro には外部コネクタが必要」 2000年2月1日。
  3. ^ 「Filemaker Pro データベースの Web 対応」 2002 年 8 月 1 日。
  4. ^ 「Microsoft on Query Expressions」 2024年3月6日。
  5. ^ 「クエリ式の定義」
  6. ^ 「LassoAppsの説明」
  7. ^ Chris, Tracewell (2006). 「2つのOS Xスクリプト言語の詳細MACTech .
  8. ^ Brian, Dunning (2005年2月1日). 「仕事に最適なツールを選ぶ
  9. ^ 「W3Techs の Lasso vs スクリプト言語」
  10. ^ 「人気言語の比較」 。2009年1月16日時点のオリジナルよりアーカイブ
  11. ^ “ヴィンス・ボナフォンティ・ラッソトーク・ポスト” .
  12. ^ 「Lasso 1.0の要件」 。1996年12月27日時点のオリジナルよりアーカイブ
  13. ^ “Lasso in the Press (アーカイブ)” . 2003年6月8日時点のオリジナルよりアーカイブ。
  14. ^ Jim, Dalrymple (2002年1月4日)、「AppleがMacworldでConnect: Pro2Proイベントを開催」、PCWorld
  15. ^ 「Claris ダイナミック マークアップ言語」
  16. ^ 「Blue World Technology、Clarisに買収される」 。2001年4月30日時点のオリジナルよりアーカイブ
  17. ^ Yu, Chong-ho. 「LassoはWeb Companionよりも多くの機能を提供する」 。2004年12月26日時点のオリジナルよりアーカイブ
  18. ^ 「Lasso 2.0の変更点」 。2001年5月1日時点のオリジナルよりアーカイブ
  19. ^ 「Lasso 5 がリリースされました」
  20. ^ 「FileMaker の放棄に関する Slashdot の議論」 2004 年 8 月 31 日。
  21. ^ “Tenon” . 2018年8月28日時点のオリジナルよりアーカイブ2005年9月5日閲覧。
  22. ^ 「エディターズチョイスアワード:インターネットと開発」 MacWorld IDG 201310月28日閲覧
  23. ^ Seiter, Charles. 「Lasso Studio for Dreamweaver 1.5」 . MacWorld . IDG . 2013年10月28日閲覧
  24. ^ Cohen, Peter. 「Lasso Studio 7 for Dreamweaver, GoLive リリース」 . MacWorld . IDG . 2013年10月28日閲覧
  25. ^ 「FileMaker Server 7 Advancedがリリース」 CMO 201310月28日閲覧
  26. ^ Cook, Brad. 「Lasso ProがMySQL Network認証を取得」 MacWorld . IDG . 2013年10月28日閲覧
  27. ^ 「OmniPilot Software買収に関する記事」
  28. ^ 「Lasso 8 リリースのお知らせ」
  29. ^ 「8.5は無料」。MacNN
  30. ^ Cohen, Peter. 「Lasso Studio 8 for Dreamweaver & GoLive リリース」 . MacWorld . IDG . 2013年10月28日閲覧
  31. ^ 「 MacNNにおけるOmniPilotのリリース一覧」。MacNN
  32. ^ “LassoSoft が OmniPilot の Lasso を買収” .マックNN。 2007 年 3 月 5 日。
  33. ^ “LassoSoft LLC買収記事” .
  34. ^ Gunderson, Lars. 「Lassosoft が今まさにやってくれることを期待していること
  35. ^ Gunderson, Lars. 「LassoTalkコミュニティの衰退のグラフ」
  36. ^ 「9.2 リリース」
  37. ^ 「Lassoの最初のバージョンがリリースされました」 。1996年10月19日時点のオリジナルよりアーカイブ
  38. ^ 「Lasso 1.0.4 マニュアル」(PDF) 。1996年12月27日時点のオリジナル(PDF)からアーカイブ
  39. ^ “Lasso 1.1 Released” . 1996年12月27日時点のオリジナルよりアーカイブ
  40. ^ “Lasso 2.0 Release” . 2003年6月12日時点のオリジナルよりアーカイブ
  41. ^ 「MacWeek Reviewへのリンクが切れています」 。1998年4月22日時点のオリジナルよりアーカイブ
  42. ^ “Lasso 3.0 Released” . 2003年6月12日時点のオリジナルよりアーカイブ
  43. ^ “Lasso 3.5 Released” . 2003年6月8日時点のオリジナルよりアーカイブ
  44. ^ “Lasso 3.6 Release” . 2003年6月11日時点のオリジナルよりアーカイブ
  45. ^ “Lasso 3.6.5 リリース” . 2003年6月11日時点のオリジナルよりアーカイブ。
  46. ^ “Lasso 5.0 Release” . 2003年8月2日時点のオリジナルよりアーカイブ
  47. ^ “Lasso 6.0 Released” . 2003年6月22日時点のオリジナルよりアーカイブ
  48. ^ 「Lasso 7.1 リリース (コピー)」
  49. ^ 「Lasso 8.1 リリース」
  50. ^ 「Lasso 8.5 リリース」
  51. ^ 「Lasso 9 リリース」
  52. ^ 「Lasso 8.6 リリース」
  53. ^ 「Lasso 9.1 リリース」
  54. ^ 「Lasso 9.2 リリース」
  55. ^ 「Lasso 9.3 リリース」
  56. ^広範囲のパラメータ