Web開発とデスクトップ開発-Web開発はさらに悪いですか?[閉まっている]


29

最初の大規模なWebアプリケーションの実行を検討している長年のデスクトップ開発者として、Web開発を行うことの長所と短所は何ですか?

Webアプリケーションの開発は、デスクトップアプリの開発よりもはるかに悪いですか?たとえば、それはより退屈なのですか、それとも迷惑ですか?市場投入までの時間はずっと悪いですか?Webプラットフォームは過度に制限されていますか?これらのいずれかの答えがイエスである場合、なぜですか?

(そして、FlashまたはSilverlightアプリの開発はどのように比較されますか?)


5
終了することには投票していませんが、Web開発とデスクトップ開発の観点に再利用できるとしたら、建設的になると思います。
ジョシュK

K:わかりました。既存の回答を無効にせずに質問を言い換えようとしました。ありがとう。
ジョシュケリー

回答:


26

いや

自分が何をしているのかわからない場合や、正しく計画していない場合は苦痛ですが、それはどの開発でも当てはまります。デスクトップアプリケーションにアプリケーションをボトル詰めする方が簡単ですが、Webアプリケーション用のコーディングによって提供されるアクセシビリティが失われます。

目的の用途に基づいて、デスクトップとWebのどちらかを選択します。Webベースで記述されたアプリケーションの多くは、デスクトップアプリケーションのコーディング方法がわからないため、そうではないはずです。ただし、Webベースである必要のあるデスクトップアプリケーションはあまり見かけません。これは検討すべきものだと思います。集中ストレージ、リモートアクセシビリティ、およびUI特性が必要な場合は、確認してください

どちらも使用していないため、FlashまたはSilverlightについてコメントすることはできません。


5
私はその男になり:s/loose/lose/
ハンニバルレクター博士

@dr Hannibal:修正しました。時々、キーをダブルタップします。;)
ジョシュK

4
@drハンニバル:「ハンニバルレクター」から来る「私はその男に嫌い」という言葉から来るような認知的不協和音があります:)
Skilldrick

25

他の人が述べたように、それはトレードオフの問題であり、正しい知識を持つことです。

あなたが考慮したいと思うかもしれない唯一の落とし穴はこれです:あなたはあなたがあなたが利点として「クロスプラットフォーム」を持っているとしてあなたがあなたの質問であなたが質問をすることを述べます。しかし、本当にそうですか?このように考えてください。デスクトップ用に何かを開発する場合、サポートするプラットフォームとその要件のリストを定義する必要があります。

間違いはありません。ウェブでも同じです。また、以前よりも非常にシンプルになっていますが、幅広いパブリックアプリを設計する場合は、あらゆるWebブラウザーのあらゆるバージョンを処理する必要があります。そして、それがエンタープライズアプリの場合は、自分自身を引き締め、サポートされているブラウザプラットフォームの要件を非常に正確にドラフトする準備をしてください。

重要な何かを構築する場合、あちこちでプラットフォーム固有のハッキングを避けることを避けるとは思わないでください。

そして楽しい部分です。最高は何ですか?Chromeのように非常に定期的に自分自身をほぼ自動的に更新するブラウザですか または、セキュリティ更新プログラムを毎月のみ更新し、石器時代ごとに主要な機能(IEなど)を更新しますか?これらの頻繁な「透過的な」更新の一部はコードを破壊する可能性があるため、答えはあなたが思うほど明白ではありません。あなたはこれに従い、迅速に対応する必要があります。または、開発およびテスト中にベータ版と開発版のプレリリースに注目してください。あなたが愚かにもサポートしたいと言ったすべてのブラウザについて(幸運)。

ああ、UIの考慮事項を忘れないでください。また、あなたが一貫性のあるUIたいかどうかを決めるの喜びに直面ACROSSすべてのターゲットプラットフォームを、または一貫性のあるUI WITHを各ホストのターゲットプラットフォーム。Webページで表示できる小さなボタンをすべて表示しますか?どこでもまったく同じにするか、ユーザーが使用する環境と統合する必要がありますか?もちろん、この問題は新しいものではなく、他の開発モデルにも存在しますが、ここではより重要であり、ターゲットとするユーザーのタイプと期待するものに依存します。公共のエンドユーザーは、プラットフォームに統合することを望みますが、それでも「すごい!」それらは派手なもので-エンタープライズユーザーはデスクトップアプリのように見えるものを望みます。そして、モバイルプラットフォームには、これらすべてに新しい次元がありました。

最後の2段落については、一般的には、事前に構成されたWebブラウザーをインストーラーにパッケージ化して、Webアプリ(ローカルでホストされているか、Web上にある)に接続します。更新頻度を制御し、状態を「フリーズ」でき、何をサポートおよびテストするかを正確に知っているため、素晴らしいです。さらに、専用のユーザー拡張機能などのクールなものを追加できます。たとえば、さまざまなタイプのユーザーがWebアプリを簡単に使用できるように開発した小さな「Chrome Extensions」で「凍結」されたChromiumをパッケージ化すると、非常に便利です。一方、...リリースサイクルを凍結したためにセキュリティ違反が発生した場合、あなたは今責任を負い、アプリは速度の改善の恩恵を受けません(もしあれば)。

多くのものと同様に、それは両刃のxです。

注: OSIレイヤーに至るまで、基本的に中途半端なテクノロジーの山である(そしてここでは丁寧です)ために、Web に対して強いバイアスあります。またはそれらを修正します。

そうは言っても、私はプラットフォームとしてのユビキタスな性質からウェブに賛成です。あなたの会社の動きは(おそらく)正しいものだと思います。明らかに、ターゲット市場とターゲットとするプラットフォームに依存します。何かをサービスとして公開したい場合は、おそらく大丈夫です(必要ではありませんが)。そうでない場合は、それほど多くの理由がないかもしれません。

うーん、そして、既存のオペレーティングシステムのより軽量なバリアントがモバイル環境(ネットブック、スマートフォン、PDA、タブレット、電子書籍など)で生成され続け、軽量の組み込みブラウザの使用に重点が置かれている現在、将来のいくつかの楽しい開発を期待しています。 ..しかし、UIレンダリングの不具合がすべて新たに共有されています。

プラグインベースの技術に関して...私はそれらから遠ざかることを言うでしょう。それらはアプリのパワーを強化しますが、市場への浸透を制限します。場合によっては、新しいプラットフォームが突然サポートを拒否するまで、クロスプラットフォームサポートの観点からはプラスになると思われます。Web Standardsには理由があります(HTMl5のすべてに興奮しすぎないように注意してください。


編集:その他の考慮事項...

募集

知識のあるWeb開発者を見つけるのは非常に困難です。あなたはそれらの群れがあると思うだろうが、彼らはフォームにいくつかの検証を実装するためになんとか700行のJavaScript / ECMAScriptを書くことができたと考えるかなり無能な人々の巨大なプールで失われているそして、高度なスキルの観点から達成できることのすべて。

冗談ではありませんが、最近、すべてのWeb開発インタビューの最初の質問は、変数を宣言する方法と、使用するかどうかvar(回答方法に応じて)に違いがあるかどうかです。憂鬱です。平均的または高度なWeb開発者を見つけることは、平均的または高度なデスクトップ開発者を見つけることよりもはるかに難しいと思います。

知覚

「私はWeb開発者です」と言っても、誰もあなたを真剣に考えません。サブクラスのプログラマー、開発者向けではありませんか?あなたが無視し、遠くからock笑し、コーヒーを飲みに行くときに参加しないもの。:)

これは明らかに真実ではありませんが、ほとんどの場合あなたのために管理されている環境のために開発するという事実に帰着します。ブラウザは、ねじ込みマークアップ、ねじ込みスタイルを修正し、それらの一部のねじ込みスクリプトも修正し、必要に応じて最適化します。そして、あなたがWeb開発者なら、あなたはあなたが低レベルのプログラミングについての手がかりを持っているとは思わないでしょう。

そして、彼らはECMAScriptがどれほどクレイジーに複雑であるかを認識しますが、彼らの意見を検討することを拒否します。それはウェブだからです。私たちは本質的にそれが好きではありません。


-2、+10 ...私はいくつかの論争を助長したようです;)
ヘイレム

ブラウザ間の違いはますます問題になっています。確かに、CSSとその他の処理方法には小さな矛盾がありますが、ほとんどの場合、最新のブラウザーで大きな問題は発生していません。ない限り、あなたしているHTML5と最先端の権利、<canvas>およびそのようなもの...
ディーン・ハーディング

6
「注:OSIレイヤーに至るまで、基本的に中途半端なテクノロジーの山である(そしてここでは丁寧です)ために、Webに対して強いバイアスがあります。それらを解決または修正します。」-あなたは私ですか?????
ボビーテーブル

2
私は本物のWeb開発の第一人者であり、驚くべきことをし、それを本格的なソフトウェア開発プラットフォームとして使用している2、3人の男性と仕事をしました。彼らは私の深い敬意を持っています。しかし、これは過去15年間でたった2つです。残り...まあ、かつては、インタビュアーが慣れ親しんでいたスパゲッティではなく、サンプルコードが構造化されていたという理由だけで、Perlの「エキスパート」としてギグを獲得しました。当時、私の本当のPerlの専門知識は指ぬきに収まりました。
ボブマーフィー

2
良い、悪い、ECMAScriptと呼ばれるECMAScriptに対して+1。
アラン・ピアース

14

両方を扱っている人として(ただし、Webよりもデスクトップ):私の最大の不満は、Web開発における「一般的な不格好さ」の感覚です。最高のツールとフレームワークを使用しても、抽象化は依然として非常に漏れやすく、ステートレスプロトコルで実行しているという事実に常に対処しています。

別の関連する迷惑は、Webアプリの実装に使用されるテクノロジーの組み合わせです。すてきな、モノリシックな、モジュール式の環境と、すべてを実行できる言語はありません。比較的単純なWebアプリでも、少数の個別のプログラミング、スクリプト、およびマークアップ言語で物事をコーディングする必要があります。

だから一般的な答えとして:はい、それは本当に悪いです。少なくとも、すべてが非常に線形で明確に定義されているテクノロジーとプラットフォームを使用して、クリーンでシームレスな環境でのコーディングに慣れている従来のデスクトップ背景から来ている場合。最善の方法は、それを同じフィールドと考えないことです。あなたが無意識のうちに「デスクトップ開発のような」ウェブ開発を期待し続けるなら、それは常に非常に不快で迷惑に見えるでしょう。


4
「一般的に不格好だ」と感じた理由は、おそらく「抽象化」しようとするフレームワークを使用していたためでしょう...何、ウェブ?Webはステートレスです。ASP.NETの "webforms"がどれほど別の方法で考えさせようとも、それがステートレスであることを決して忘れないでください。開発者がそれを変更不可能な真実として受け入れると、品質の高いWebアプリケーションを書くのが早くなります。
ジェイソンホワイトホーン

1
+1、よく言った。単一の技術スタックですべてを記述するためのソリューションであると考えられているRailsのようなフレームワークでさえ、推奨されるプラクティスをRJSから「控えめなJS」に変更することで、それを台無しにしています。
ヤコ

11

デスクトップからWebへの最大の再考は、Webアプリは本質的にステートレスであるということです。

その部分を把握し、あなたは良いです。


ブラウザは重要ですか?
ジェフ

@Jeffのクロスブラウザーの不整合は迷惑ですが、それほど重大ではありません
スティーブンA.ロウ

4
実際のブラウザー(いくつかの不整合)、Internet Explorer(より不整合)、そしておそらく悪魔の子(IE6)のために書かなければなりません。
TRiG

2
@Malfist:このアプローチ(ステートレス+セッション=ステートフル)で注意しなければ、最初にイーグルを望んだときに、航空機のジェットエンジンをボルトで取り付けてエミューを設計できました;)
Piskvor

1
@ジムG:もちろんです。ただし、ブラウザなどの違いは、ステートフルアプリケーション設計からステートレスアプリケーション設計に移行する場合と比べるとごくわずかです。
スティーブンA.ロウ

5

面倒さの多くは、すべてのブラウザーですべてを機能させるために必要な作業に由来しています。ほとんどの場合、最先端にいる必要はないので、自分でハンドロールする代わりに適切なWebフレームワークを選択することで、他の人が行った作業を活用できます。

どちらを使用するかは、現在使用している言語環境に大きく依存します。質問を編集して、その情報を提供することができます。


2
ブラウザの互換性の問題が巨大な痛みが、それは本当だが、このうちのバランスを取るために、彼はあなたがなどのオペレーティングシステムの異なるバージョン、図書館、に対処する必要がデスクトップ開発に比較だということを忘れないでください
Carson63000

@ Carson、Javaデスクトップ開発を行う場合、この痛みは実際にはごくわずかです。たぶん、.NETまたはWin32 APIの方がずっと悪いでしょう。

2

いいえ、Webアプリケーションにはデスクトップアプリケーションとは異なるトレードオフがあります。それぞれが私の心に長所を持っています。単一の展開のような長所がありますが、どのブラウザをサポートしているか、顧客にどの画面解像度を期待しているかを知ることのトレードオフがありますか?サーバーのハードウェアを制御することはできますが、予想されるトラフィックの量と、どれだけうまくスケーリングできるかという問題がありますか?何年もウェブ開発を行ってきた人たちにとって、これらは、あなたが大きな苦痛であると思う開発タスクを持っていると想像するのと同じように痛い場所になる可能性があります。

Flashアプリは、私の考えではWebアプリケーションである場合とそうでない場合があります。AIRのようなものは、いくつかのFlashをデスクトップで実行できるようになり、その上にTwhirlなどのいくつかのアプリケーションが構築されます。


2

Web開発は必ずしも悪いものではなく、まったく異なるものです。

Web開発とデスクトップ開発を分けるものの1つは、かなり複雑なアプリケーションを開発するために習得しなければならない根本的に異なるテクノロジーが多すぎることです。つまり、基本的に次のことについての強力な知識が必要です。

  • HTML
  • Javascript
  • CSS
  • いくつかのサーバー側言語(Java / PHP /その他)
  • RDBMS(またはいくつかの永続ストア技術)
  • ...そして、おそらくFlash、Silverlightなどのような他の多くのもの。

一方、デスクトップ開発では、通常、はるかにモノリシックな一連のテクノロジを使用します。たとえば、Javaアプリを開発するには、基本的にJavaを知っている必要があります。(もちろん、これは多少簡略化されていますが、ポイントは、Web開発により、機能するアプリケーションを形成するために連携する必要がある、はるかに広範囲の根本的に異なるテクノロジーにさらされることです。)


1

いや

適切なツールを選択する限り、Web開発はデスクトップ開発と同じくらいクリーンで簡単です。

Web API(html、CSS、Javascript、およびDOM)はwin32 apiに相当します。最終的にはすべてがそのAPIレベルまで話をしますが、乱雑さ、冗長性、矛盾をあなたから遠ざけるためにライブラリなしで直接その上でプログラムするのはおかしいです。

したがって、フレームワークの選択には注意してください。いくつかの問題は、悪いツールを選択することによって自己負担されます(ブラウザの互換性の問題など)。

単一の言語で、クリーンで一貫性のあるWeb開発プラットフォームを使用できます。たとえば、「常にすべてjava」にしたい場合は、GWTを使用して、クライアント側コードとサーバー側コードの両方をJavaで記述できます。または、すべてをJavaScriptにしたい場合は、クライアント側にはExt JS、サーバー側にはnode.jsのようなものを選択できます。


0

「...私の存在の悩みの種」と表現されているのを聞いたことがありますが、同意します。HTML Web開発を行うために、1時間に$$$を提供されましたが、断りました。それはそんなに苦痛です。私はほとんどの時間をHTMLで過ごし、最近「Flashプラットフォーム」での作業を開始しました。それは私が今まで見た中で最も洗練されたフレームワークの1つであり、誰もそれについても知りません。人々がフラッシュを育てるとき、彼らは10年前のフラッシュについて考えます。それは成長しています...たくさん。私は再びソフトウェアを書くのが大好きです。

まだ欠点があります。バグは永遠に残ることがありますが、改善されました(Steve Jに感謝します)。

ところで、Flex開発者には大きな不足があります。私は非常に多くの企業からアプローチされてきましたが、病気です。CSを知っている場合は、今後6か月以上かけてFlexハードコアを学んでから電話してください。断らなければならないすべての求人を引き継ぎます。

更新:クロスブラウザーのサポートが主な問題点です。あるブラウザで機能するものは別のブラウザでは機能しないか、前のバージョンでは機能しません。

プロセスは次のようになります。-サイトのデザインを取得する-1つのターゲットブラウザーで再作成を試行する(これは難しい場合があります) -他のブラウザで動作するようにします。これが最も難しい部分です。途中であいまいなバグがあります。次に、角の丸い部分など、以前のブラウザではサポートされていない機能に遭遇します。コードとCSSを再利用しようとしますが、すぐに断片化されます。簡単に言えば、非常に迅速に高メンテナンスになる可能性があります。アニメーションと古いブラウザーのチョークを追加します。

クライアント変更を加えます。あなたはすべての時間を「単純なものであるべきこと」に費やすことになり、あなたの人生を嫌います。あなたは第一人者になり、知りたくないことを知るでしょう。それは劇的に聞こえますが、あなたが直面する問題を改善しているわけではありません。フレームワークはそれを簡単にします。HTMLでの作業に固執している場合は、HTMLでお気に入りのサイトの1つを作成し直し、サポートするすべてのブラウザーのデザインと機能を一致させてください。仕事に就く前に、発生した問題を邪魔にならないようにしてください。最高の設計ツール、最高のJavaScriptフレームワーク、最高のデバッグツール、最高のIDEなどの問題


あなたの答えを編集して、なぜそれをあなたの存在の悩みの種と考えるのを説明してもらえますか?
ジョシュケリー

上記の私の回答を更新しました

1
1時間3ドル?あなたがそれを断ったのも不思議ではありません、最近の最低賃金でさえありますか?;)
Piskvor
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.