มีข้อ จำกัด ใด ๆ ของเว็บแอปพลิเคชัน HTML5 ในอุดมคติหรือไม่


11

สมมติว่าสมมุติฐานสองข้อต่อไปนี้เป็นจริง

  • ฐานผู้ใช้ทั้งหมดของคุณสามารถเข้าถึงบรอดแบนด์ได้ทุกที่
  • มีจินตภาพเบราว์เซอร์ X ที่ใช้ร่างข้อมูลจำเพาะทั้งหมดของกลุ่ม HTML5 และ WHATWG อย่างสม่ำเสมอและผู้ใช้ทั้งหมดใช้เบราว์เซอร์ X

อะไรคือข้อ จำกัด ที่แท้จริงของเว็บแอปพลิเคชันสาธารณะ HTML5 เชิงพาณิชย์ที่เราต้องการสำหรับแอปพลิเคชันสาธารณะเชิงพาณิชย์

ฉันสนใจข้อ จำกัด ของเว็บปลั๊กอินที่ไม่ต้องพึ่งพาสะพาน / Java / SilverLight / etc บริดจ์สำหรับคุณสมบัติพิเศษหรือพึ่งพาปลั๊กอินของเบราว์เซอร์สำหรับคุณสมบัติพิเศษ

ข้อ จำกัด ที่เป็นไปได้ที่ไม่มีผล:

  • ฐานข้อมูล? เรามี WebSQL และ indexedDB
  • ไฟล์ IO เรามี HTML5 File API ซึ่งทำทั้งการอ่านและการเขียน
  • ความเร็ว? ด้วยการแข่งขันเอ็นจิ้น JavaScript ล่าสุดเบราว์เซอร์จะไม่ช้าอีกต่อไป Native C ++ เร็วขึ้นเพียง 3 เท่าจากนั้นเป็นเครื่องยนต์ V8 ของ Chrome
  • เครื่องมือพัฒนา เว็บได้ครบกำหนดแล้วและยังมีเครื่องมือมากมายที่มีให้เลือกมากมาย
  • ปิดแหล่งที่มา? ใช่รหัสทั้งหมดเป็นโอเพนซอร์ส นี่คือดาบสองคมและมีความคิดเห็นมากมายเกี่ยวกับการใช้งานซอร์สหรือโค้ดโอเพนซอร์ส ฉันเองเชื่อว่าข้อดีของรหัสโอเพนซอร์สนั้นมีมากกว่าข้อเสีย
  • JavaScript / HTML5? ข้อโต้แย้งที่ชอบ "ฉันคิดว่า HTML5 และ EcmaScript เป็นแพลตฟอร์มการพัฒนาที่น่ากลัว" โดยส่วนตัวแล้วจะไม่นับรวม

ข้อ จำกัด ที่ทราบ:

  • รหัสสำคัญแบบเรียลไทม์ / ความปลอดภัย (ความลับสุดยอด) ไม่ได้อยู่ในเว็บหรือไม่สามารถทำได้ จำเป็นต้องเขียนในระดับต่ำภาษาที่สามารถควบคุมได้สูงเช่น C หรือ C ++
  • เครื่องมือใด ๆ ที่จำเป็นต้องมีการโต้ตอบกับฮาร์ดแวร์ของบุคคลที่สามจากต่างประเทศที่ต่อกับคอมพิวเตอร์ของคุณจะมีช่วงเวลาที่ยากลำบากในการพูดคุยกับเว็บแอปพลิเคชันของคุณ

นอกจากนี้ยังมีชุดโปรแกรมทั้งหมดที่ไม่ได้อยู่ในเว็บ ระบบปฏิบัติการไดรเวอร์ซอฟต์แวร์เซิร์ฟเวอร์ API ระดับต่ำ ฉันรู้ว่า แต่ฉันไม่ได้จัดประเภทเป็นแอปพลิเคชั่น "สาธารณะเพื่อการค้า" นี่เป็นซอฟต์แวร์ประเภทหนึ่งที่สามารถติดตั้งไว้ล่วงหน้าในคอมพิวเตอร์

นอกเหนือจากนี้ฉันรู้ว่าสมมติฐานสองข้อนั้นไม่สมจริงอย่างน่ากลัว แต่เราอาจประสบความสำเร็จใน 5/10/20/30 ปี ฉันสนใจประเภทของแอปพลิเคชันและคุณสมบัติของแอปพลิเคชันที่ทำให้แอปพลิเคชันไม่เข้ากันกับเว็บอย่างสมบูรณ์

แรงจูงใจ:

จุด:

รับชุดของปัญหาที่แอปพลิเคชันเดสก์ท็อปเป็นโซลูชันที่ถูกต้อง

  • ทำไมเว็บแอปพลิเคชันจึงไม่ใช่โซลูชันที่ถูกต้อง
  • ฉันจะระบุได้อย่างไรว่าฉันสามารถใช้เว็บแอปพลิเคชันเป็นโซลูชันได้หรือไม่

ฉันได้พยายามลบปัญหาหลักด้วยเว็บแอปพลิเคชัน (การเชื่อมต่ออินเทอร์เน็ตและการสนับสนุนเบราว์เซอร์) โดยยืนยันว่าไม่มีอยู่

นอกจากนี้แอพพลิเคชั่นออฟไลน์ HTML5 และ Modernizr ก็พร้อมที่จะแก้ไขปัญหาทั้งสองนี้

ปัญหาอื่น ๆ ของการพัฒนาเว็บแอพพลิเคชั่นคืออะไร?


2
ข้อ จำกัด หลัก: ความคิดที่ดีสำหรับเว็บแอปพลิเคชันที่ผู้คนจะต้องการใช้งานมากพอจะเชื่อมต่อกับโมเดลธุรกิจที่จะส่งคืนต้นทุนอย่างน้อยที่สุด ส่วนที่เหลือเป็นที่สองไกล
เอสเอฟ

"อะไรคือข้อ จำกัด ที่แท้จริง" คุณหมายถึงอะไรโดย "ข้อ จำกัด ที่แท้จริง" คำเหล่านี้หมายความว่าอย่างไร คุณต้องการข้อมูลอะไร คุณมีปัญหาอะไร คำถามคืออะไร?
S.Lott

@SF ลบคำว่า "web" คุณต้องการปัญหาและแนวทางแก้ไข หากโซลูชันนั้นเป็นแอปพลิเคชันคุณจำเป็นต้องแก้ปัญหาให้มีฐานผู้ใช้และมีโมเดลธุรกิจที่ใช้งานได้ ฉันแค่เปรียบเทียบชุดปัญหาที่มีแอปพลิเคชันเดสก์ท็อปเป็นโซลูชันและตั้งคำถามว่าทำไมเว็บแอปพลิเคชันจึงไม่ทำงาน
Raynos

@ S.Lott ที่ถูกต้องของคุณคำถามที่คลุมเครือเกินไปฉันหวังว่าฉันจะชี้แจงว่าคำถามที่แท้จริงคืออะไร
Raynos

อะไร? "อะไรคือข้อ จำกัด ที่แท้จริงของเว็บแอปพลิเคชันสาธารณะเชิงพาณิชย์ที่เราต้องการสำหรับแอปพลิเคชันสาธารณะเพื่อการค้า" นี่หมายความว่า "เราต้องการเดสก์ท็อปเมื่อใดเพราะเว็บไม่ทำงาน" ถ้าเป็นเช่นนั้นสิ่งเหล่านี้ซ้ำกัน: programmers.stackexchange.com/search?q=desktop+web
S.Lott

คำตอบ:


11

ออกจากหัวของฉัน ...

  • เข้าถึงฮาร์ดแวร์ที่เป็นกรรมสิทธิ์ซึ่งส่งออก I / O ด้วยวิธีอื่นนอกเหนือจากไฟล์ เป็นอุปกรณ์ทางวิทยาศาสตร์เครื่องจักรอุตสาหกรรมหรือเครื่องบันทึกซีดีธรรมดาและแท็บเล็ตดิจิตัลพร้อมรองรับการเอียง
  • HTTP เท่านั้นและตระกูลเล็ก ๆ ของโปรโตคอลอื่น ๆ คุณไม่สามารถสร้างซ็อกเก็ตได้ตามที่คุณต้องการถ่ายโอนข้อมูลไบนารีใด ๆ ที่คุณต้องการ นั่น จำกัด การเชื่อมต่อกับระบบและบริการอื่น ๆ อย่างมากมาย
  • ไม่มีนักพัฒนาที่มีสติจะสร้างเกมที่เน้นกราฟิกใน Javascript บรอดแบนด์แทบจะไม่สามารถเทียบเคียงได้กับปริมาณการรับส่ง DVD / HDD การสนับสนุน 3D ใน Canvas นั้นด้อยกว่าสิ่งที่คุณได้รับจากเอ็นจิ้นเกม ไม่มีวิธีสนับสนุนจอยสติ๊กปุ่มกดหลายตัวพร้อมกันธรรมชาติแบบเปิดทำให้การโกงง่ายขึ้น แต่โดยหลักแล้วการลดลงของประสิทธิภาพไม่เป็นที่ยอมรับ
  • sandboxing หนัก คุณจะไม่ได้สิ่งที่รวมอยู่ในระบบปฏิบัติการอย่างลึกซึ้ง ภาพหน้าจอ, โปรแกรมป้องกันไวรัส, ไดรฟ์เสมือน, งานพื้นหลัง a'la system tray, งานธุรการ ฯลฯ
  • ไม่สามารถเป็นภารกิจที่สำคัญ ขึ้นอยู่กับบรอดแบนด์ตลอดเวลาในการใช้งานซอฟต์แวร์พื้นฐานไม่ใช่วิธีที่ บริษัท ต้องการเรียกใช้

1
2. WebSockets จะเปิดเผยซ็อกเก็ต TCP คุณไม่มีสิทธิ์เข้าถึง UDP ในเบราว์เซอร์ แต่ TCP ให้ตัวเลือกมากมายแก่คุณ
Raynos

2
3. WebGL กำลังก้าวหน้าที่น่าสนใจ การสนับสนุน OpenCL เพิ่งเริ่มต้น แน่นอนว่ามันยังคงล้าหลัง 5 ปีในการพัฒนาเกมบนเดสก์ท็อป แต่มันเริ่มเป็นไปได้แล้ว
Raynos

2
@Raynos: WebSockets จะมีฟังก์ชั่นเหมือนซ็อกเก็ต แต่ต้องใช้การจับมือกันโดยเฉพาะคุณไม่สามารถปรับให้เข้ากับระบบที่มีอยู่ได้อย่างง่ายดายคุณต้องปรับเปลี่ยนฝั่งเซิร์ฟเวอร์ หมายความว่าไม่มีแอปพลิเคชันเว็บไคลเอ็นต์ ssh ทั่วไป WebGL อาจแก้ปัญหา gfx บางอย่าง แต่ก็ยังไม่มีวิธีแก้ไขความต้องการข้อมูลจำนวนมาก (พื้นผิวและตาข่ายกิกะไบต์), คอนโทรลเลอร์ I / O, นอกจากนี้การสนับสนุนด้านเสียงยังไม่ดีอย่างน่าสงสาร
เอสเอฟ

1
4. W3C Device API (ซึ่งฉันไม่รู้) จริง ๆ แล้วเป็นทางที่มั่นคงในการแก้ปัญหา sandboxing
Raynos

1
มีหลายสิ่งที่เปลี่ยนไปตั้งแต่คุณเขียนคำตอบแรก เบราว์เซอร์ได้กลายเป็นแพลตฟอร์มซอฟต์แวร์ที่ถูกต้องตามกฎหมายในสิทธิของตนเอง; สิ่งที่คุณอธิบายในคำตอบของคุณเป็นไปได้ตอนนี้ ใช่ฉันสามารถจินตนาการได้ว่าเกมหรือแอปพลิเคชันใด ๆ ที่ทำงานในเบราว์เซอร์มีความพยายามเพียงพอ
Robert Harvey

3

โดยพื้นฐานแล้วสิ่งใดก็ตามที่สามารถปรับให้เข้ากับโมเดลเซิร์ฟเวอร์ / ไคลเอนต์สามารถสร้างเว็บแอปพลิเคชันที่ดีและในทางตรงกันข้ามก็สามารถพูดได้ว่าเป็นจริงเช่นกัน แนวโน้มที่จะย้ายไปยังเว็บได้หายไปอย่างรวดเร็วเนื่องจากเห็นว่าโปรแกรมส่วนใหญ่สามารถสร้างโมเดลเป็นโมเดล / คอนโทรลเลอร์ / มุมมองได้อย่างไรโปรแกรมสามารถแยกโมเดลและคอนโทรลเลอร์ออกจากมุมมอง

แน่นอนว่าด้วยเหตุผลด้านประสิทธิภาพตัวควบคุมบางตัวก็วางอยู่ข้างไคลเอนต์เพื่อหลีกเลี่ยงการโอเวอร์โหลดเซิร์ฟเวอร์ด้วยการร้องขอและข้อมูลที่ผิดพลาด

แม้ว่าประเด็นของฉันคือ: โปรแกรมใดที่ไม่เหมาะสมกับซอฟต์แวร์ซอฟต์แวร์โมเดล / ตัวควบคุม / มุมมอง ตัวอย่างที่ดีที่นึกถึงคือระบบปฏิบัติการตัวกำหนดเวลางานพรอมต์คำสั่งการป้องกันไวรัสการป้องกันสปายแวร์ ทุกอย่างที่มีแนวโน้มจะไม่ถูกนำไปใช้กับเว็บไซต์เพราะมันไม่เหมาะกับรูปแบบ และไม่ใช่เรื่องบังเอิญที่ทุกโปรแกรมเหล่านี้ขึ้นอยู่กับระบบของคุณเป็นอย่างมาก ส่วนใหญ่ต้องการการเข้าถึงโดยตรงกับฮาร์ดแวร์ในขณะที่คนอื่นต้องการความปลอดภัยที่สูงขึ้นเพื่อให้สามารถเรียกใช้และไม่สามารถเชื่อถือได้โดยเว็บไซต์อินเทอร์เน็ต

แน่นอนว่า Google ได้ปรับแนวคิดนี้อย่างสมบูรณ์ด้วยระบบปฏิบัติการใหม่ของพวกเขา สมมุติว่าไม่เหมือน Windows มันไม่ได้เป็นเพียงระบบที่เติบโตขึ้นเพื่อใช้อินเทอร์เน็ต แต่เป็นระบบที่ต้องพึ่งพามันมาก ในไม่ช้าคุณอาจเห็นว่าโปรแกรมเหล่านี้ทั้งหมดพร้อมใช้งานออนไลน์ทำให้สามารถเข้าถึงฮาร์ดแวร์และซอฟต์แวร์ของคุณได้รับการรับรองความถูกต้องของใบรับรองที่เข้มงวดเพื่อป้องกันไม่ให้ไซต์ใด ๆ สามารถทำเช่นนั้นได้ ฉันกังวลที่จะเห็นสิ่งที่เกิดขึ้นเนื่องจากฉันคิดในเวลา 20 ปีคอมพิวเตอร์จะไม่ได้รับการติดตั้งซอฟต์แวร์อีกต่อไป ค่อนข้างบริการทั้งหมดจะสามารถใช้ได้ออนไลน์


0

•เครื่องมือใด ๆ ที่จำเป็นต้องมีการโต้ตอบกับฮาร์ดแวร์บุคคลที่สามจากต่างประเทศที่ต่ออยู่กับคอมพิวเตอร์ของคุณจะมีช่วงเวลาที่ยากลำบากในการพูดคุยกับเว็บแอปพลิเคชันของคุณ

ซอฟต์แวร์ที่ฉันกำลังทำงานอยู่ในขณะนี้มีแง่มุมของเดสก์ท็อปและด้านเว็บอย่างแม่นยำเพราะต้องรวบรวมข้อมูลจากอุปกรณ์ต่อพ่วงของบุคคลที่สาม ความต้องการการพัฒนาไดรเวอร์และไคลเอนต์โปรแกรมเดสก์ท็อปเพื่อเชื่อมช่องว่างระหว่างอุปกรณ์และเว็บ

สิ่งนี้ไม่ได้ยกเว้นเว็บแอปพลิเคชัน แต่เนื่องจากแอปพลิเคชันเดสก์ท็อปประเภทนี้อาจมีความบางโดยใช้ลอจิกที่อยู่บนเซิร์ฟเวอร์เป็นส่วนใหญ่

ในอีกหมายเหตุหนึ่งสามารถพูดกับแง่มุมของการประมวลผลแบบคลาวด์และการจำลองเสมือนโดยรวมที่ไม่จำเป็นต้องมีการ จำกัด แอปพลิเคชันโดยข้อ จำกัด และช่องโหว่ด้านความปลอดภัยของเทคโนโลยีเว็บ การรันแอปพลิเคชันเดสก์ท็อปจากสภาพแวดล้อมเสมือนจริงบนเทอร์มินัลโง่ (เหมือนกับ Citrix) กลายเป็นเรื่องง่ายกว่าที่จะประสบความสำเร็จและอาจเป็นการพัฒนาต่อไป "fad"

บรรทัดล่างคือมีตัวเลือกมากขึ้นกว่าที่เคยและหัวพูดมากขึ้นเล่นเทคโนโลยีในวันพรุ่งนี้เป็นวิธีที่ "ดีที่สุด"


1
ที่น่าสนใจคือคุณสามารถรันแอปพลิเคชันเดสก์ท็อปจากสภาพแวดล้อมเสมือนจริงบนเว็บเบราว์เซอร์ ฟีเจอร์เก่าแก่ของเซิร์ฟเวอร์ VNC ส่วนใหญ่เป็นแอปเพล็ต VNC Viewer ของ Java ซึ่งมีให้ใช้งานตามค่าเริ่มต้นที่ http: // [remote machine]: 5800 / So - desktop-app-as-web-app?
เอสเอฟ

0

สมมติว่าสมมุติฐานสองข้อต่อไปนี้เป็นจริง

  • ฐานผู้ใช้ทั้งหมดของคุณสามารถเข้าถึงบรอดแบนด์ได้ทุกที่
  • มีจินตภาพเบราว์เซอร์ X ที่ใช้ร่างข้อมูลจำเพาะทั้งหมดของกลุ่ม HTML5 และ WHATWG อย่างสม่ำเสมอและผู้ใช้ทั้งหมดใช้เบราว์เซอร์ X

อะไรคือข้อ จำกัด ที่แท้จริงของเว็บแอปพลิเคชันสาธารณะ HTML5 เชิงพาณิชย์ที่เราต้องการสำหรับแอปพลิเคชันสาธารณะเชิงพาณิชย์

ฉันสนใจข้อ จำกัด ของเว็บปลั๊กอินที่ไม่ต้องพึ่งพาสะพาน / Java / SilverLight / etc บริดจ์สำหรับคุณสมบัติพิเศษหรือพึ่งพาปลั๊กอินของเบราว์เซอร์สำหรับคุณสมบัติพิเศษ

ตกลงแล้วนี่คือการถู: เบราว์เซอร์นั้นจะไม่ปลอดภัยตามธรรมชาติ ดังนั้นคุณจะขอให้เราทำการแลกเปลี่ยนระหว่างคนทั้งสอง อย่างไรก็ตามการผ่านมาและสมมติว่าเรามี javascript (ซึ่งคุณพาดพิงถึงในโพสต์ของคุณ) จากนั้นคำตอบว่าไม่มีแอปที่ไม่สามารถเขียนได้โดยใช้ HTML5 / Javascript เท่านั้น อย่างไรก็ตามเราถือว่าเบราว์เซอร์ที่ไม่สามารถเข้าถึงได้

สิ่งนี้มีที่เก็บฐานข้อมูลท้องถิ่นสามารถโทรไปยังแพลตฟอร์มอื่น ๆ โดยใช้คำขอ HTTP (ซึ่ง RESTafarian จะบอกคุณว่าเพียงพอ) และสามารถวาด (ผ่าน Canvas) ได้ทุกสิ่งที่คุณต้องการ มีเกม 3 มิติที่เขียนขึ้นโดยใช้มาตรฐานแบบเปิด (OpenGL ish) และมี API ที่จะทำทุกอย่างที่คุณต้องการ

ข้อเสียเปรียบที่แท้จริงเพียงอย่างเดียวคือความเร็ว จะใช้เวลาในการโทร HTTP API เหล่านั้นไปยังระบบอื่น (ฐานข้อมูล) ต้องใช้เวลาในการประมวลผลการร้องขอ FILE (COM1 :) (เพื่ออ่านผ่านอุปกรณ์แบบอนุกรมใน Windows) ดังนั้นสิ่งเหล่านี้คือปัญหาที่ฉันคาดหวัง แน่นอนฉันยังสมมติว่ามีการเขียนไดรเวอร์ให้สามารถเข้าถึงได้เช่นไฟล์ซึ่งฉันค่อนข้างแน่ใจว่าไม่เป็นจริงอีกต่อไป แต่พวกเขาสามารถเปิดเผยกลไกดังกล่าว;)

สำหรับผู้ใช้งานจะไม่แตกต่างกันมากนัก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.