¿Silverlight tiene futuro? [cerrado]


24

Recientemente he leído algunos artículos / blogs / comentarios sobre el desarrollo y la historia de WPF y Silverlight. En algunos foros, muchos desarrolladores y usuarios critican el rendimiento de las aplicaciones WPF (por ejemplo, Visual Studio 2010). En realidad, la cuota de mercado de Silverlight en comparación con Flash no es muy alta. En PDC 2010, Bob Muglia dijo algo así como "nuestra estrategia y enfoque de Silverlight en el futuro ha cambiado ..." y Microsoft quiere impulsar HTML5 en el futuro.

Además, Microsoft ha anunciado que HTML5 es una parte central de las plataformas Windows 8 y Windows Phone 8 ("Mango").

¡Recientemente comencé a aprender Silverlight y ahora debo preguntarme si debo continuar invirtiendo tiempo en aprender estas (en mi opinión) tecnologías muy buenas y poderosas !? ¿Tienen un futuro? ¿Las aplicaciones de escritorio (cliente) (Windows) tienen futuro? ¿Las llamadas "Aplicaciones de Internet enriquecidas" tienen futuro? ¿O HTML5 se convertirá en la "verdad absoluta" en el desarrollo de software?

¿Cuál es tu opinión y qué piensas?


1
Creo que VS 2010 funciona mucho más rápido que VS 2008. Mi sensación hasta ahora es que, si sigues un patrón razonable como MVVM, WPF y Silverlight pueden funcionar mejor que Winforms o Webforms tradicionales. YMMV, pero trabajar en una plataforma que promueve un patrón más limpio (menos acoplamiento, etc.) da como resultado mejores aplicaciones en general, incluido el rendimiento. El rendimiento a menudo tiene mucho menos que ver con la tecnología utilizada, y mucho más que ver con los patrones o antipatrones utilizados.
Morgan Herlocker

¿Por "futuro" quieres decir "vale la pena hacer nuevas soluciones en"?

Todo el software seguirá cambiando. Casi todos tendrán futuro. Al igual que las personas, algunos viven más y a veces sin razones obvias. La pregunta es, ¿qué significa para ti?
NoChance

Creo que necesitamos alguna prueba de que VS2010 es lento debido a WPF. La pequeña cantidad de aplicaciones WPF en las que he trabajado fue mucho más receptiva y fluida de lo que nunca se pudo lograr con WinForms. ¡Las ralentizaciones no se deben a WPF ! ... Hay muchas maneras de estropear la capacidad de respuesta de una aplicación.
Roman Starkov

Respuestas:


17

Silverlight + Flash vs HTML5. Oh chico. Ha habido un montón de discusión en torno a este.

Centrémonos en Silverlight (aunque se pueden hacer muchos de los mismos argumentos para Flash). ¿Está muerto a los ojos de Microsoft? NO. Solo mire el reciente evento de Firestart, específicamente la nota clave de Scott Guthrie (Muchas nuevas características por venir):
http://www.silverlight.net/news/events/firestarter/

Lo que te da:

  • La capacidad de escribir aplicaciones de Internet (y de escritorio si usa fuera del navegador) en su idioma dotNET favorito, hoy.
  • Ofrezca a sus usuarios interfaces altamente interactivas y ricas en todos los principales navegadores y plataformas de manera consistente, hoy.
  • Acceso a API avanzadas en el cliente (este es un argumento bastante débil ya que JavaScript siempre tiene nuevas bibliotecas agregadas y es bastante impresionante).
  • Programabilidad de Windows 7 Phone: Silverlight es una de las dos "API nativas" principales para el WP7. Ese es al menos un dispositivo para el que puedes crear aplicaciones de forma nativa.

La baja:

  • Móvil: hay una tonelada de dispositivos móviles en los que Silverlight NUNCA estará encendido. No va a pasar.
  • Microsoft: seamos sinceros. Mucha gente se negará a usarlo solo porque es Microsoft. Algunos de sus usuarios se negarán a instalar el tiempo de ejecución porque es Microsoft. Es tonto, sí, pero es un hecho.
  • Oh hay otros. ¿Realmente necesito iterar todos los inconvenientes?

HTML5 responderá muchas (si no todas) las desventajas que podemos pensar para Silverlight. Pero cuáles son las desventajas de HTML5:

  • No es una especificación finalizada. Sí, muchos navegadores implementan muchas características de HTML5, pero muchos navegadores no lo hacen, o muchos lo hacen de diferentes maneras. E incluso si lo implementan hoy, no hay garantía de que la especificación no cambie en los próximos meses / años.
  • No está 100% listo hoy. Nuevamente, se habla mucho sobre lo que HTML5 traerá algún día. Pero para muchas cosas, es solo eso. Hablar. Si bien se han hecho algunas cosas CORE (animación, gráficos, etc.), todavía hay muchas piezas que están MUY en el aire y ni siquiera están estandarizadas en cada implementación (acceso de API de hardware para dispositivos como acelerómetros, por ejemplo). Puede comenzar a usar algunas de estas piezas hoy, pero estará bloqueado en ciertos navegadores, y nuevamente no hay garantía de que no tenga que cambiar su código a medida que la especificación se acerca a la finalización.
  • Consistencia del navegador: si cree que HTML5 será exactamente igual en todos los navegadores / dispositivos, entonces está delirando. Cada navegador lo implementará de manera ligeramente diferente y necesitará tener un código para detectar el navegador e insertar el "intérprete" apropiado. Estoy seguro de que será más fácil detectar el navegador, y estoy seguro de que las bibliotecas ayudarán (como hace JQuery hoy), pero seguirá siendo un problema.
  • Tiendas de aplicaciones: el hecho es que nadie va a comprar su aplicación HTML5 como lo hacen hoy con las aplicaciones de Apple. Si desea que el usuario compre su aplicación a través de una tienda de aplicaciones, deberá escribir en la biblioteca nativa del dispositivo. Nuevamente, se ha debatido mucho sobre este tema, pero el hecho es que todos los dispositivos móviles modernos proporcionan acceso al navegador y las aplicaciones basadas en el navegador simplemente no tienen el atractivo de una aplicación nativa. Las aplicaciones creadas hoy usando HTML / CSS simplemente no tienen el atractivo que tienen sus contrapartes nativas.

A mi modo de ver, Silverlight le brinda hoy la capacidad de "cliente rico". No tiene acceso a todos los dispositivos (especialmente los móviles), pero para ciertas clases de aplicaciones es una excelente opción y seguirá siéndolo. HTML5 será un contendiente serio muy pronto y les recomiendo a todos que lo aprendan. Lo necesitaras.


3
Creo que si alguien todavía está en la fase educativa de su carrera, Silverlight y Flash jugarán un papel mucho más pequeño en sus futuras aplicaciones de re: Web / Rich Internet.
ocodo

1
Lo siento. Pero simplemente no estoy de acuerdo (pero, por supuesto, toda esta respuesta se basa en la opinión. Realmente no hay forma de saber el futuro). Un nuevo idioma no debería tomar más de unos meses para comprenderlo (no hablar de dominar aquí) y muchas personas apuestan a que Silverlight y HTML5 sean jugadores importantes en los próximos años. Si usted es un desarrollador de Microsoft y está haciendo aplicaciones ricas de Internet, entonces Silverlight debe estar en su cinturón de herramientas, aunque definitivamente no es su única herramienta.
Zippit

"en todas las plataformas principales" = ¿Windows Vista Y Windows 7 presumiblemente?
Martin Beckett

2
@ Martin: Silverlight también se ejecutará en Mac. Moonlight también permite portar ciertas aplicaciones de Silverlight a Linux.
Morgan Herlocker

1
-1 para la consistencia del navegador. Los navegadores tienen errores en su implementación de HTML5. Todos los navegadores populares de la barra IE tienden a solucionarlos rápidamente. HTML5 será consistente. En cuanto a las tiendas de aplicaciones, hay PhoneGap . Sé que la respuesta tiene 6 meses de antigüedad, pero puede usar algo de modernización para mantener los tiempos.
Raynos

22

Creo que muchas personas miran a Microsoft y ven una entidad gigantesca. Sin embargo, en realidad no es así. Microsoft se parece más a docenas de equipos pequeños y en realidad es solo el nombre "Microsoft" lo que los une. Entonces, mientras el equipo de IE se está enfocando en HTML 5 y lo está presionando tanto como pueden, puede apostar que el equipo de WPF / Sliverlight está trabajando tan duro en WPF y Silverlight.


2
para no ser sarcástico ... pero estoy seguro de que había un equipo MUY duro trabajando en el Kin, en serio. El ruido se hace cada vez más fuerte y más difícil de ignorar ... echa un vistazo a riagenic.com - me derribaron
Martínez

55
@Martinez: Recomiendo encarecidamente tomar todo lo que Scott Barnes tenga que decir con un agitador de sal completo. He estado siguiendo la diarrea verbal del Sr. Barnes hasta hace poco, cuando eliminé su blog de mi lector y dejé de seguir su cuenta de Twitter. Hay demasiada acritud y mala vibra en sus mensajes. Creo que es un caso clásico de uvas agrias (el ex gerente de programa de Microsoft se desvaneció, probablemente al menos en parte, debido a su actitud claramente mala)
Dave

Sí, había un equipo muy duro trabajando en Kin, pero la política interna lo mató ya que el presidente del WP7 quería que su juguete se hiciera cargo.
gbjbaanb

Novell también tiene un gran interés en la luz de la luna. No solo mire el soporte del navegador.
Tim Post

Los ingenieros trabajan en docenas de equipos pequeños, pero eso no significa que lo mismo sea necesariamente cierto para el marketing
2011

11

Silverlight para su uso en la web nunca ha despegado realmente ; sin embargo, Microsoft está presionando mucho a Windows Phone 7, que usa WPF / Silverlight para las aplicaciones, por lo que Silverlight en sí no está siendo eliminado, es solo el enfoque de dónde se implementa, que es cambiando.


+1, nació en la web, pero la tecnología tiene mucho sentido en otros lugares.
Wyatt Barnett

9

Tal vez "matar" es una palabra un poco fuerte. Creo, y se ha informado ampliamente (Mary-Jo Foley, etc.) que Microsoft está cambiando su enfoque de Silverlight a HTML 5. Creo que Silverlight continuará siendo la plataforma elegida para experiencias web súper ricas y tal vez material pesado en video (por ejemplo, lo que hicieron con la cobertura en línea de NBC de los Juegos Olímpicos de Invierno 2010). También creo que veremos a Silverlight cada vez más en el "espacio" empresarial: en lugar de entregar clientes "gordos" en WPF o WinForms, definitivamente puedo ver Silverlight, especialmente. corriendo fuera del navegador, encontrando un hogar en el desarrollo de software empresarial.

Desde una perspectiva estratégica, leí una publicación con una gran explicación de por qué Microsoft de repente está tan interesado en HTML 5. Para empezar, les da una "entrada" al mercado de iOS. En segundo lugar, cambia el juego a un área donde, en relación con Apple, tienen una gran ventaja: la nube. Cualquiera que haya utilizado el servicio MobileMe de Apple puede dar fe del hecho de que, si bien Apple hace muchas cosas bien, actualmente Cloud no es una de ellas.


Estoy de acuerdo, "matar" es quizás un poco fuerte. Sin embargo, como nuevo programador, dudo con firme convicción de invertir mucho tiempo y / o esfuerzo para aprender Silverlight. Si Silverlight es el estándar de facto para WP7, mientras HTML5 se empuja para la web Y MS dice que la nube es el futuro ... ¿qué te concentrarías para aprender, HTML5 / JS, Silverlight o algo así como Python?
Martínez

1
Creo que como tecnología "web", podría argumentar que HTML, JavaScript y CSS son las habilidades en las que debe centrarse en el futuro. Es un conjunto de tecnologías que le dará acceso a casi cualquier plataforma (incluidos, en particular, los móviles). Dicho esto, aunque puede ver cada vez menos Silverlight en aplicaciones web, no creo que desaparezca pronto. Además, tenga en cuenta que si es un nuevo programador, este no será el primer o el último cambio en la tecnología que experimentará. ¡Ve con lo que te emociona!
HY

El problema que encontramos con Silverlight para aplicaciones "empresariales" fue que era mucho más restrictivo que WPF, a la vez que ofrecía muy poco (que de todos modos necesitábamos) a cambio. Puede estar bien para la entrada de datos, pero no le permitirá producir aplicaciones realmente ingeniosas que pueda poner delante de un sr. director o vicepresidente.
RGT

8

Creo que Silverlight ya se ha acabado (participación en el mercado), ya que Flash y Silverlight darán paso a HTML5 en los próximos años.

WPF, por otro lado, es probable que se quede (aunque los problemas de rendimiento son válidos) Windows Vista / Windows 7 están fuertemente invertidos en WPF y probablemente será la estrategia de escritorio para Microsoft durante los próximos años (al menos), especialmente teniendo en cuenta que VS y Expression se escriben usando WPF.

Pero, por supuesto, esa es la estrategia de escritorio, y está cada vez más claro que la mayoría de las aplicaciones que las personas usan día a día migrarán del escritorio a la web (si aún no lo han hecho) a medida que el soporte del navegador HTML5 se vuelve omnipresente. WPF sigue siendo (posiblemente) la mejor opción para aplicaciones que requieren Windows Desktop y .Net, pero es probable que sean aplicaciones basadas en nicho o basadas en web, que serán las principales.

Además de HTML5, es probable que las plataformas móviles (léase: Android e iOS) sean las áreas de crecimiento para el desarrollo durante los próximos años.


2
Obviamente no viste el Silverlight Firestarter hace solo unas semanas. Microsoft anunció una nueva versión de Silverlight para el próximo año. Todavía hay muchos desarrolladores en Silverlight. Todos los videos se pueden ver aquí: silverlight.net/news/events/firestarter Echa un vistazo a la nota clave de Scott Guthrie para tener una idea de lo que viene en Silverlight 5
Zippit

2
¡Obviamente no lo hice! (He editado mi respuesta para eliminar ese error). Ciertamente hay espacio para que Silverlight se use mientras que la ubicuidad HTML5 aún no se ha establecido, pero es un juego perdedor desde el punto de vista de los desarrolladores, puede vender el desarrollo de Silverlight hoy, eso es un hecho, pero en unos años, su mercado se va a agotar.
ocodo

Lo siento. No significaba que eso sonara "atacante". Solo quería aclarar que Microsoft no ha abandonado Silverlight.
Zippit

Sin daño, sin falta, había hablado completamente desde aquí, digamos. Todos estamos bien;)
ocodo

2
Con la proliferación de aplicaciones nativas en tantas plataformas, me sorprende que la gente todavía esté llorando por la muerte del desarrollo de escritorio / nativo. Servicios web + clientes nativos o web = mejor experiencia de usuario y alcance en todo IMO.
Steven Evers

5

Esto no es muy sorprendente. Con todas las debidas disculpas a todos los desarrolladores que lo eligieron, Silverlight ha sido una verdadera broma desde el principio. Nadie lo usa en sus sitios web. El mercado objetivo está saturado por Flash, y tres años y medio de Microsoft empujando su alternativa no ha llevado a una adopción generalizada, y ahora que HTML 5 está saliendo en todos los principales navegadores, el mercado realmente no soportará tres competidores , soluciones mutuamente incompatibles.

Ahora Microsoft dice que se centrarán en él como el estándar para la programación de Windows Phone 7. Este es el último clavo en el ataúd, ya que según todos los signos, WP7 parece ser un gran fracaso.


1
No estoy listo para simplemente descartar WP7 como un fracaso. Espero que le vaya bien (FD: tengo y amo un Droid). El mercado necesita más competencia, imo. SI WP7 es un fracaso, no veo por qué Silverlight se mantendría con vida. Supongo que muchos tienen sus carreras completas en lo que sucede a partir del 8 de noviembre.
Martínez

2
En realidad, nunca consideré que Silverlight fuera una tecnología basada en navegador. No creo que mucha gente entienda las tecnologías de Microsoft. Se centran en los negocios y en su mayoría son amigables para el consumidor. Apple se enfoca en el consumidor con poca consideración de los negocios y Google es geek y amigable con el consumidor. Con eso en mente, Silverlight tiene sentido.
ElGringoGrande

4

Parece que ha habido un cambio estratégico dentro de Microsoft, y en este momento Adobe Flex / Flash seguirá siendo la tecnología líder para trabajar con aplicaciones RIA. Parece que HTML5 será ampliamente adoptado y yo personalmente cambiaría a experimentar con él.


4

Diría que HTML5 es válido durante el tiempo que desee producir aplicaciones que estén dirigidas a la mayor cantidad posible de clientes.

¿Debería su aplicación requerir acceso a internet? ¿Debería usar las capacidades nativas de la computadora? (archivos, monitoreo, etc.). ¿Requiere compartir información? Todas estas preguntas y más le sirven de guía para saber si puede o no puede producir sus aplicaciones como una aplicación web enriquecida, o si debe desarrollarse como una aplicación basada en el cliente.

Definitivamente hay un lugar para aplicaciones WPF en el futuro, especialmente a corto plazo. Silverlight parece ser el objetivo para el desarrollo de espacio aislado como los teléfonos, pero veremos cómo funciona ese tren. Pero al comienzo de cualquier desarrollo, debe observar los requisitos de la aplicación, lo que desea lograr y seleccionar su tecnología en consecuencia.

Ahora, sin embargo, me gustaría señalar que no hay razón para no aprender Silverlight o WPF, incluso si no es lo que será el jugador principal en 6 o 7 años. Si hay algo que puedo decir con certeza, es que la tecnología cambia. Habrá un HTML6, habrá un próximo WPF, y tendrá que aprender más de una tecnología si realmente desea comprender la primera.

Simplemente comience a aprender uno de ellos, y siempre puede cambiar y llevar lo que ha aprendido a la próxima tecnología.


4

Escribí una publicación de blog sobre este mismo tema, porque siguió apareciendo en mi equipo desde que usamos Silverlight. La respuesta corta es: Silverlight no está muerto. HTML 5 será una mejor opción para llegar a más dispositivos y más plataformas. Pero Silverlight es más rico en funciones y actualmente es mucho más fácil desarrollar una aplicación Silverlight que una aplicación HTML 5 con ASP.NET MVC. Las herramientas para Silverlight son magníficas en comparación con la falta casi completa de herramientas para HTML 5 de Microsoft. Por lo tanto, depende de su entorno y su público objetivo cuál es la mejor opción.

Para más detalles, aquí está mi publicación de blog:
http://rationalgeek.com/blog/post/Silverlight-vs-HTML-5.aspx

Además, Hanselman publicó recientemente sobre el mismo tema: http://www.hanselman.com/blog/ShouldIUseHTML5OrSilverlightOneMansOpinion.aspx


¡Convenido! Aquí está la respuesta principal a ese primer artículo de carteles de Scott Guthrie (pero que lee las aclaraciones ...) weblogs.asp.net/scottgu/archive/2010/11/04/…
holtavolt

4

Aquí hay un artículo de ReadWriteEnterprise sobre habilidades tecnológicas de tendencias, a partir de mayo de 2011:

http://www.readwriteweb.com/enterprise/2011/05/it-hiring-and-salaries-up---wh.php

Silverlight superó a Flash.Los trabajos de Silverlight experimentaron un crecimiento del 12.6% en los últimos tres meses, mientras que Flash experimentó solo el 2.2%. Silverlight también superó a Flash en el número total de trabajos, con 982 listados de trabajos para Silverlight y 646 para Flash.

Y

Los profesionales de Microsoft están bien, con un fuerte crecimiento en C #, Silverlight y Azure.


3

Es solo una suposición, pero con el auge de los teléfonos inteligentes y las tabletas, especialmente los de Apple, Silverlight como tecnología web ya no parece tener mucho sentido.


3

Silverlight probablemente se describe mejor como la respuesta de Microsoft a Flash. Es el mismo dominio del problema, por lo que lo que hace que un buen juego Flash también sea un buen juego de Silverlight.

Nadie realmente sabe el futuro. Todo lo que sé en este momento es que no todo es una buena aplicación web, y no todo es una buena aplicación de escritorio. Esto sí lo sé:

  • WPF probablemente se quedará por un tiempo.
  • Silverlight está en su infancia, por lo que Microsoft lo va a prodigar por un tiempo. He escuchado rumores de que es mejor trabajar con Flash que con Flash, pero nunca me he metido con ninguno, no puedo decirlo.
  • Se supone que HTML 5 / CSS 3 / JavaScript son las rodillas de las abejas, pero no estarán listas de una manera verdaderamente significativa en ningún momento de esta década. (Suponiendo que los comités lo aprueben antes de 2020, todavía necesita soporte completo del navegador y eso lleva tiempo).

Para elegir la plataforma que va a seguir, necesita obtener algunas respuestas fundamentales:

  • ¿Quiénes son sus clientes? (es decir, ¿cuál es su mercado objetivo?)
  • ¿Estás planeando ganar dinero? ¿Cómo?
  • ¿Cuál es el período de tiempo que espera que esta aplicación esté activa antes de actualizarla o reemplazarla?

Si está buscando más de dos años para obtener sus dos primeras versiones, es probable que esté buscando demasiado lejos en el camino. Conocer su mercado objetivo lo ayudará a comprender si una plataforma es incluso viable. Por ejemplo, muchos dispositivos móviles no admiten ningún tipo de complemento en sus pequeños navegadores, lo que significa no solo Silverlight, sino tampoco Flash. Pero si no está apuntando a dispositivos móviles, no le importa.


Parece probable en este punto que casi todo en HTML5 sea compatible con los navegadores mucho antes de que los comités lo terminen. No es que eso sea necesariamente algo bueno ...
Vuelve a instalar a Monica el

2

Creo que todo es solo una conjetura en esta etapa. Con el plan para una tienda de aplicaciones integrada en Windows 8, la tecnología de la aplicación probable sería Silverlight (dada la forma en que se puede poner en modo sandbox en OOB, etc.). Es probable que SL esté presente en los próximos años.

La otra cosa a tener en cuenta sobre HTML5 es que el cambio mencionado puede estar alejado de la actual programación de IE no estándar, no lejos de SL.


OOB = ??? Mi suposición: babuinos huérfanos naranjas
Matt Ellen

@ Matt Ellen: oob = fuera del navegador.
Todd Main

1

Entonces, ¿qué debe hacer Microsoft?
En esta situación, tienen que dar soporte para HTML5 + js como el creador del navegador más utilizado.

Pero aún puedes ir con Silverlight. Habrá lanzamientos y soporte para este marco bien diseñado, sin duda.


1

No de acuerdo con este artículo, lo están simplificando para que sea más fácil crear código multiplataforma.

http://www.theregister.co.uk/2010/10/29/portable_library_project_silverlight_windows_phone/


Lea el artículo, parece muy similar a los Tweets y otros artículos que he estado siguiendo. Muchas personas simplemente están confundidas por lo que, EXACTAMENTE, esto significa. Bob Muglia no es alguien que simplemente descartas ... ¿dejó escapar demasiado durante la entrevista?
Martínez

1

Es por eso que todavía estamos haciendo una buena programación WinAPI de la vieja escuela usando Delphi. Es mejor dedicar tiempo a la resolución de tareas que desperdiciarlas en las llamadas "nuevas tecnologías". Todo lo "nuevo" en .NET existía mucho antes que en Borland Delphi. Personalmente, creo que la tecnología debería permanecer al menos 10 años antes de que uno deba probarla y depender de ella.


44
Hmm Pero si nadie está usando tecnología, entonces muere, entonces no hay tecnología nueva. Y 10 años en tecnología son eones. Hace 10 años se lanzó Windows 2000 (NT en el escritorio), lo que significa que deberíamos comenzar a usar Windows 2000 con HTML 4.01. Si bien esperar un tiempo antes de adoptar el entorno de producción es bueno, 10 años parecen demasiado largos a menos que escriba un sistema de control nuclear o satelital, pero 1. Espero que no estén escritos con WinAPI 2. Todavía pueden beneficiarse de las nuevas pruebas automatizadas. traje además de las tecnologías más antiguas).
Maciej Piechotka

1

Estoy bastante seguro de que Microsoft no matará a Silverlight a favor de HTML5, al menos no en resumen: P. En un evento reciente con Paul Cotton , discutimos eso, y todos estuvimos de acuerdo en que la principal diferencia con HTML5 es: las herramientas, VS.Net + Blend son herramientas excelentes e inmejorables por el momento, esta es una gran ventaja y hay muchas de programadores que continuarán desarrollándose en Silverlight y en muchas otras tecnologías .Net.

De todos modos, cuando aparecieron los gadgets de Vista y se hicieron en HTML, nadie pensó que Silverlight estaba muerto, encontramos la manera de poner Silverlight dentro de ellos ... así que supongo que podremos poner nuestras cosas de Silverlight en el nuevo y Impresionante interfaz de Windows 8.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.